2011-04-22 104 views
0

我懷疑我只是非常愚蠢的和失去了明顯的東西。但我對rspec和工廠女孩相當陌生,無法讓這個簡單的測試工作。Rspec控制器測試與工廠女孩

基本上我已經建立了一個模型叫頁和我在控制器中這樣稱它:

​​

在我的測試中,我做到以下幾點:

before do 
    @pages = [Factory(:page), Factory(:page, :title=> "Contact", :content=>"contact content", :meta=>"meta content", :page_type=>'homepage') ] 
    get 'index' 
end 

it 'should set the pages variable' do 
    assigns[:pages].should_not be_nil 
    assigns[:pages].length == 2; 
end 

但我得到的是:

Failure/Error: assigns[:pages].should_not be_nil 
expected not nil, got nil 

任何幫助,不勝感激

+0

不應該是'之前(:每個)做',或者是一個錯字? – zetetic 2011-04-22 14:29:30

+0

那麼它說你可以在rspec2書中做任何事情,它可以是從rspec1掛起或者是在每次測試之前是否運行它。無論哪種方式它沒有幫助,但謝謝! – 2011-04-22 14:38:33

+0

確實分配(:頁面)'工作? – zetetic 2011-04-28 15:36:29

回答

0

您的控制器將其實例變量@pages設置爲零。很可能它根本沒有被分配。你確定你粘貼代碼片段:在你的控制器的index行動

​​

被稱爲?如果是這樣,該代碼會將@pages設置爲空列表,而不是零。