1

我的 Rails 应用程序调用 Web 服务。

我在一些测试中使用FakeWeb gem 通过注册这样的 URI 来伪造这些调用:

FakeWeb.register_uri(:get, "http://webservice.com/param?value=a", :response => fake_response)

如何为整个测试环境设置这个虚假注册,而不是为每个测试手动设置?

4

3 回答 3

1

最有可能的是,把它放在你的 spec/spec_helper.rb 文件中就可以了。我自己没有使用过 FakeWeb,但那是你放置任何全局初始化的地方。

于 2012-11-09T19:39:57.077 回答
1

看看VCR ruby​​gem。

它记录您的测试套件的 HTTP 交互并在测试运行期间重放它们。

于 2012-11-09T21:50:04.160 回答
0

在 in 的文件中spec/support/,调用块register_uri内部Before

Before do
  FakeWeb.register_uri(:get, "http://webservice.com/param?value=a", :response => fake_response)
end

我使用这个技巧来使用webmock设置模拟响应,它就像一个魅力。

于 2012-11-09T21:42:07.917 回答