2011-12-23 6 views
4

actuellement je suis attemp pour apprendre rubis sur des rails et le cadre de tests rspek quelqu'un peut me répondre à ce assigne faire dans ce test rspecqu'est-ce que « attribue »

describe "GET index" do 
    it "assigns all mymodel as @mymodel" do 
     mymodel = Factory(:mymodel) 
     get :index 
     assigns(:mymodels).should eq([mymodel]) 
    end 
    end 

Répondre

8

assigns vérifie simplement la valeur des variables d'instance vous définissez dans votre contrôleur.

Ici, il vérifie @mymodels.

+0

Yup. Et donc vous pouvez l'ignorer, car vous ne devriez pas écrire les spécifications du contrôleur. Utilisez le concombre pour vos contrôleurs, RSpec uniquement pour vos modèles. –

+2

@ MarnenLaibow-Koser: le concombre est fait pour les spécifications d'intégration. Le test des contrôleurs est un test fonctionnel. Les deux sont nécessaires et n'ont pas le même but. – apneadiving

+1

Les tests fonctionnels des contrôleurs sont totalement inutiles dans 99% des cas. Il teste les mauvaises choses - c'est-à-dire, il teste la mise en œuvre, pas le comportement - et c'est une perte de temps et d'efforts; pire, cela peut vous induire en erreur en pensant que votre application est bien testée quand elle ne l'est pas. D'une manière générale, cela ne devrait pas être fait. –