J'essaie de comprendre pourquoi ce test échoue. (Je suis un peu nouveau pour tester.) J'utilise le framework de test Rails intégré avec l'ajout de la gemme Shoulda.Pourquoi le test du contrôleur Rails échoue-t-il?
Le test:
require 'shoulda'
context "on GET to :new" do
setup do
get(:new)
end
should_render_template :new
should_not_set_the_flash
end
ne réussit pas:
1) Failure:
test: on GET to :new should render template :new. (SessionsControllerTest)
[/usr/local/lib/ruby/gems/1.8/gems/thoughtbot-shoulda-2.0.6/lib/shoulda/controller /macros.rb:220:in `__bind_1233882600_699194'
/usr/local/lib/ruby/gems/1.8/gems/thoughtbot-shoulda-2.0.6/lib/shoulda/context.rb:254:in `call'
/usr/local/lib/ruby/gems/1.8/gems/thoughtbot-shoulda-2.0.6/lib/shoulda/context.rb:254:in `test: on GET to :new should render template :new. '
/usr/local/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/testing/setup_and_teardown.rb:94:in `__send__'
/usr/local/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/testing/setup_and_teardown.rb:94:in `run']:
expecting <"new"> but rendering with <"">
2 tests, 2 assertions, 1 failures, 0 errors
Mais si je le lance sur la console avec app.get '/sessions/new'
il fonctionne très bien sans erreur.
Et le modèle "new
" s'affiche comme prévu dans le navigateur.
J'utilise Haml. Peut-être que cela cause un problème. Mon modèle est appelé "new.html.haml
".
Merci. L'appel à assert_match que vous avez suggéré a résolu. J'avais oublié un filtre avant qui gâchait les choses. – Ethan