Question

Je suis en train de comprendre pourquoi ce test est un échec. (Je suis un peu nouveau pour le test.) J'utilise le framework de test Rails intégré avec l'ajout de la gemme Shoulda.

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 parvient 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 l'exécute sur la console avec il fonctionne très bien app.get '/sessions/new' sans erreur.

Et le modèle "new" Renders comme prévu dans le navigateur.

J'utilise Haml. Peut-être qui cause un problème. Mon modèle est appelé "new.html.haml".

Était-ce utile?

La solution

L'échec dit qu'aucun modèle a été rendu. Essayez de vous assurer que vous n'êtes pas redirigé avec

should_respond_with :success

et faire valoir le contenu du @ response.body juste pour voir ce qui a été renvoyé

# This will fail but should give you some clue about what was sent back.
should "sent something back in the body" do
  assert_match 'boohooo', @response.body
end

Vous pouvez également faire valoir un modèle spécifique, vous pouvez donc donner un coup de feu aussi:

should_render_template "new.html.haml"

Cependant, je ne pense pas HAML être la cause de votre problème.

Autres conseils

J'avais un problème similaire avec Shoulda, dégagement et Rails 2.3.2. Je pense que je résolu le problème en modifiant la façon dont l'utilisation Shoulda et la clairance « assert_template ». Apparemment, il y a un bug ouvert dans Rails en rapport avec cela.

S'il vous plaît voir ce fil pour plus d'infos et mon diff des changements (un changement de ligne à la fois Dépollution et Shoulda).

http://groups.google.com/group/shoulda/browse_thread / fil / 8c0a66c80ff4fd76

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top