我无法让Webmock工作。我正在使用HTTParty来发出GET请求。我想让以下请求返回错误:
require 'spec_helper'
require 'api_parser'
require 'httparty'
describe ApiParser do
describe "#get_data" do
it "returns data" do
stub_request(:get, "congress.api.sunlightfoundation.com").to_return(:status => [401, "Forbidden"])
puts HTTParty.get "http://congress.api.sunlightfoundation.com/bills/?history.enacted=true"
end
end
我已将以下行添加到spec_helper.rb:
require 'webmock/rspec'
WebMock.disable_net_connect!(allow_localhost: true)
但它仍在调用实际的API而不是存根。我没有得到我期待的401错误。我不确定这里的问题是什么。 spec_helper缺少什么吗?
更新:我做了一些测试,看起来require api_parser
导致了这个问题。当我删除它时,存根工作,但当我添加它时它停止工作。 ApiParser类是我使用HTTParty的地方。我修改了上面的测试,直接使用HTTParty,而不是使用类中的方法。
答案 0 :(得分:0)
发现我在ApiParser类中禁用了Webmock(几小时前在调试时忘了删除它),这在spec_helper中覆盖了配置。