Заглушка ответа RestClient в RSpec
У меня есть следующие спецификации ...
describe "successful POST on /user/create" do
it "should redirect to dashboard" do
post '/user/create', {
:name => "dave",
:email => "[email protected]",
:password => "another_pass"
}
last_response.should be_redirect
follow_redirect!
last_request.url.should == 'http://example.org/dave/dashboard'
end
end
Метод post в приложении Sinatra вызывает внешний сервис с помощью rest-client. Мне нужно как-то заглушить вызов остального клиента, чтобы отправить обратно готовые ответы, чтобы я нене нужно вызывать фактический HTTP-вызов.
Код моего приложения ...
post '/user/create' do
user_name = params[:name]
response = RestClient.post('http://localhost:1885/api/users/', params.to_json, :content_type => :json, :accept => :json)
if response.code == 200
redirect to "/#{user_name}/dashboard"
else
raise response.to_s
end
end
Может кто-нибудь сказать мне, как я делаю это с RSpec? Я'я погуглил и наткнулся на множество сообщений в блоге, которые царапают поверхность, но я могуна самом деле не найти ответ. Я'Я довольно новичок в период RSpec.
Спасибо