2009-07-12 6 views
2

J'ai l'exemple suivant RSpec qui passe:Rails: Le test du contrôleur RSpec passe sans que l'action soit mise en œuvre, pourquoi?

describe UsersController do 
    it "should render new template on new action" do 
    get :new 
    response.should render_template("users/new") 
    end 
end 

Le problème est que je ne l'ai pas mis en œuvre l'action « nouveau » sur le UsersController. Quelqu'un peut-il me dire pourquoi ce test est en train de passer? Je suis nouveau à RSpec, donc tous les conseils seraient grandement appréciés!

Répondre

3

Lorsque vous demandez une action pour laquelle une vue existe, mais l'action n'est pas défini, Rails simplement rendre la vue. Par conséquent votre spécification (correctement) passe.

En plus de cette spécification, vous pouvez tester l'affectation de variables d'instance particulières. Exemple:

it "should assign the found articles for the view" do 
    assigns[:article].should == [@article] 
end 
+1

Pourquoi quand je passe en revue à «/utilisateurs/nouvelle » Est-ce que je reçois « Action inconnue Aucune action a répondu à nouveau. » ? – Lee

Questions connexes