Я просто немного смущен тем, почему я не могу заглушить локальную переменную в моей спецификации контроллера.
Вот мой контроллер:
Class UsersController < ApplicationController
...
def get_company
resp = Net::HTTP.get("http://get_company_from_user_id.com/#{params[:id]}.json")
@resp = JSON.parse(resp.body)
...
Моя спецификация выглядит так:
class ResponseHelper
def initialize(body)
@body = body
end
end
describe "Get company" do
it "returns successful response" do
stub_resp_body = '{"company": "example"}'
stub_resp = ResponseHelper.new(stub_resp_body)
controller.stub!(:resp).and_return(stub_resp)
get :get_company, {:id => @test_user.id}
expect(response.status).to eq(200)
end
end
Я все еще получаю сообщение об ошибке:
Errno::ECONNREFUSED:
Connection refused - connect(2)
Что я делаю неправильно? Если я заглушаю переменную resp
, почему она все еще пытается выполнить HTTP-запрос, и как мне в этом случае заглушить переменную resp
?