2013-04-21 8 views
8

Was macht diese Codezeile?Was bedeuten Zuweisungen in rspec

assigns(:articles).should eq([article]) 

in der folgenden rspec

describe "GET #index" do 
    it "populates an array of articles" do 
     article = Factory(:article) 
     get :index 
     assigns(:articles).should eq([article]) 
    end 

    it "renders the :index view" do 
     get :index 
     response.should render_template :index 
    end 
    end 

Antwort

9

assigns bezieht sich auf die Instanzvariablen in einem Controller-Aktion erstellt (und in der Ansicht zugewiesen ist).


Ihre Anmerkungen in den Kommentaren zu beantworten, ich denke, dass:

  • 1) Zeige Aktion wie @articles = Articles.all aussieht (ich hoffe, Sie Paginierung obwohl) verwenden

  • 2) vor der spec Block oben, Sie haben einen Artikel in db erstellt (oder ich hoffe, Sie stub db-Abfragen in db)

  • 1 + 2 =>@articles s hould einen Artikel enthält, das ist die Spec-Erwartung

+0

Ich verstehe einfach nicht, wie es eine Reihe von Artikeln auffüllt, und wie überprüfen wir, dass es funktioniert –

+0

Antwort oben bearbeitet – apneadiving