我的 Rails 应用程序调用 Web 服务。
我在一些测试中使用FakeWeb gem 通过注册这样的 URI 来伪造这些调用:
FakeWeb.register_uri(:get, "http://webservice.com/param?value=a", :response => fake_response)
如何为整个测试环境设置这个虚假注册,而不是为每个测试手动设置?
我的 Rails 应用程序调用 Web 服务。
我在一些测试中使用FakeWeb gem 通过注册这样的 URI 来伪造这些调用:
FakeWeb.register_uri(:get, "http://webservice.com/param?value=a", :response => fake_response)
如何为整个测试环境设置这个虚假注册,而不是为每个测试手动设置?
最有可能的是,把它放在你的 spec/spec_helper.rb 文件中就可以了。我自己没有使用过 FakeWeb,但那是你放置任何全局初始化的地方。
看看VCR rubygem。
它记录您的测试套件的 HTTP 交互并在测试运行期间重放它们。
在 in 的文件中spec/support/
,调用块register_uri
内部Before
:
Before do
FakeWeb.register_uri(:get, "http://webservice.com/param?value=a", :response => fake_response)
end
我使用这个技巧来使用webmock设置模拟响应,它就像一个魅力。