2011-04-22 72 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设置为空列表,而不是零。