Stubbing RestClient réponse dans RSpec
J'ai la spécification suivante...
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
La méthode post sur le Sinatra application fait appel à un service externe à l'aide de reste-client. J'ai besoin de quelque sorte stub le reste appel du client de renvoyer les réponses en conserve donc je n'ai pas d'invoquer une réelle HTTP appel.
Mon code de l'application est...
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
Quelqu'un peut me dire comment je le faire avec RSpec? J'ai Googlé autour et venir à travers de nombreux messages de blog qui gratte la surface, mais je ne peux pas vraiment trouver la réponse. Je suis assez nouveau à RSpec période.
Grâce
OriginalL'auteur RobA2345 | 2013-01-10
Vous devez vous connecter pour publier un commentaire.
À l'aide d'un maquette pour la réponse, vous pouvez le faire. Je suis encore assez nouveau pour rspec et de test en général, mais cela a fonctionné pour moi.
double
dans unlet
bloc, et lepost
dans unbefore
bloc".Merci pour la suggestion @iain mais pas du tout liés à la question 🙂 Mais oui, il devrait avoir un
describe 'POST on /user/create'
bloc avec unlet(:sucessful_response) {...}
et la avant le bloc, puis de décrire pour le succès et la réponse d'erreur.Merci les gars. Je préfère utiliser cette solution avec les outils que j'ai déjà plutôt que d'avoir recours à un tiers, et cela fonctionne bien.
OriginalL'auteur Ismael Abreu
Je voudrais envisager l'utilisation d'un bijou pour une tâche de ce genre.
Deux des plus populaires sont WebMock et VCR.
Comme de l'écriture, le dernier commit sur fakeweb était Aug 28, 2011...
OriginalL'auteur Paul Sturgess