我有以下规格...
describe "successful POST on /user/create" do
it "should redirect to dashboard" do
post '/user/create', {
:name => "dave",
:email => "dave@dave.com",
:password => "another_pass"
}
last_response.should be_redirect
follow_redirect!
last_request.url.should == 'http://example.org/dave/dashboard'
end
end
Sinatra应用程序上的POST方法使用rest-client调用外部服务。我需要以某种方式存根rest客户端调用,以发送预定义响应,这样我就不必调用实际的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 还比较新手。
谢谢。
double
设置移到let
块中,将post
移到before
块中。 - iandescribe 'POST on /user/create'
块,其中包含let(:sucessful_response) {...}
和before块,然后是成功和错误响应的描述。 - Ismael