2013-04-21 7 views
8

Cosa fa questa riga di codice?Cosa significa assegnare in rspec

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

nel seguente 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 

risposta

9

assigns riguarda le variabili di istanza creati all'interno di un'azione di controllo (e assegnati alla vista).


per rispondere alla tua osservazione nei commenti, credo che:

  • 1) la vostra azione index sembra @articles = Articles.all (spero si utilizza l'impaginazione però)

  • 2) prima di il blocco di specifiche sopra, si ha un articolo creato in db (o spero che si interrompano query db in db)

  • 1 + 2 =>@articles s hould contiene un articolo, che è il tuo spec aspettativa

+0

Io proprio non capisco come popola una serie di articoli, e come possiamo verificare che funziona –

+0

risposta a cura sopra – apneadiving