我怀疑我对此非常愚蠢并且遗漏了一些明显的东西。但我相当新的rspec和工厂女孩,并不能让这个简单的测试工作。
基本上我已经设置了一个名为page的模型,并在控制器中调用它,如下所示:
@pages = Page.where(:page_type => "homepage").limit(2)
在我的测试中,我执行以下操作:
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
ANy非常感谢
答案 0 :(得分:0)
您的控制器正在将其@pages
实例变量设置为nil。很可能它根本没有被分配。您确定要粘贴的代码段吗?
@pages = Page.where(:page_type => "homepage").limit(2)
在您的控制器的index
操作中调用?如果是这样,该代码会将@pages
设置为空列表,而不是nil。