У меня есть действие контроллера, которое я пытаюсь проверить, загружая файл.Как издеваться над объектом и его свойствами в rspec
def download_file(url)
response = Net::HTTP.get_response(URI(url))
if response.code == '200'
return response.body
end
end
При чтении на RSpec я вижу, что я могу создать двойник объекта и незавершенный его метода. Но я не могу понять, как насмехаться над его свойствами. Итак, для этого теста, как я высмеиваю ответ, который возвращается из вызова get_response, чтобы иметь свойство кода и тела? Я пробовал это, но он не работает. Вместо этого я возвращаюсь к нулю.
it 'calls Net::HTTP.get_response which returns a response' do
@netresponse = double("response", {:body => 'this is a test', :code => 200})
@url = 'http://www.google.com'
allow(Net::HTTP).to receive(:get_response).and_return(@netresponse)
return_value = controller.download_file(@url)
expect(return_value).to eq('this is a test')
end
Вау, как я пропустил это ?;) Спасибо! –