2010-10-19 3 views
2

Je veux écrire un test rspec qui teste si la disposition correcte est utilisée pour le contrôleur. (En fait je veux tester qu'aucune disposition n'est utilisée :)).Comment tester si la disposition correcte a été utilisée dans le contrôleur en utilisant RSpec et Rails 3

J'ai fait quelques googler et aussi regardé ici Testing rendering of a given layout with RSpec & Rails

Mais tout cela ne fonctionne pas pour Rails3.

J'ai utilisé:

controller.layout

et

controller.class.read_inheritable_attribute(:layout)

mais aucun de ceux-ci me donner la disposition réelle utilisée.

Avez-vous des idées pour obtenir quelle disposition a été utilisée pour le contrôleur?

Répondre

2

Essayez response.layout

EDIT

Effectivement, response.layout ne fonctionne plus dans Rspec2. Cependant, vous pouvez vérifier la mise en page correcte a été rendu à l'aide render_template comme décrit sur cette Rails Forum thread:

response.should render_template("layouts/mylayout") 

Quant à la deuxième partie de votre question, je ne vois pas un moyen de vérifier la absence d'une mise en page . ne semble pas fonctionner. Voir this discussion

+1

Non, il n'y a pas de méthode comme 'layout' pour objet de réponse à RoR3: NoMethodError (méthode non définie mise en page » pour # ): – oskarae

+0

Vous avez raison. Voir ma réponse éditée. – zetetic

Questions connexes