【发布时间】:2019-09-03 20:52:03
【问题描述】:
我正在更新一个使用非常旧版本的 RSpec (2.9.0) 的应用程序。它适用于 3.8,但我收到有关以下代码的弃用错误:
response = Net::HTTPOK.new(1.0, "200", "OK")
response.stub(:content_type => 'text/json', :body => contents_raw)
现在,此代码是对外部 API 的模拟标注,它位于我的代码库的深处。我正在测试的应用程序是一个 Sinatra 应用程序,所以我使用 Rack::Test::Methods 中的“get”来测试我的应用程序,但是在应用程序本身的深处是这个 response.stub
显然我应该使用“double()”和“allow(object).to receive(...)”,但我看到的所有示例都是直接在测试的“it”块中使用 double,这段代码离它还很远。如果我真的尝试使用 double 我只会得到一个 no method 错误。
WebMocks 似乎是一个非常大的锤子,可以替换这个单一的调用。
也许正确的做法是创建一个 Net::HTTPOK 的超类并以该超类的新内容传递响应数据?
【问题讨论】: