【问题标题】:How to separate Rails Rspec tests that make api calls如何分离进行 api 调用的 Rails Rspec 测试
【发布时间】:2014-04-16 15:20:55
【问题描述】:

我正在编写进行实时 api 调用的 rspec 功能测试。我希望能够使用简单的命令 rspec 运行所有非 api 测试,然后以某种方式分别调用实时 api 测试。也许有一种方法可以使用 ARGV 或从通用 rspec 命名空间中排除一些测试,并且仍然具有完整的功能测试功能。有什么想法吗?

【问题讨论】:

  • 为什么不使用 vcr gem 来记录 api 响应。所以它不需要一次又一次地HIT api
  • 我想过这个问题,但实际上我想定期测试实时 api 以确保他们的方法没有改变以及我的代码是否正常工作。

标签: ruby-on-rails api rspec


【解决方案1】:

您需要标记您的 API 规范,查看 RSpec 文档:https://www.relishapp.com/rspec/rspec-core/v/2-4/docs/command-line/tag-option

如果要使用环境变量进行过滤:

spec_helper.rb

RSpec.configure do |c|
  c.filter_run_excluding api: true unless ENV['ALL']
end

使用此设置rspec spec 命令将过滤掉所有标记为api 的规范。

如果您想运行整个套件,包括 API 规范 ALL=true rspec spec

【讨论】:

  • 很好的解决方案!我可以确认这个可爱的小方法非常有效。谢谢米哈伊尔。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-02
  • 1970-01-01
相关资源
最近更新 更多