与工厂女孩的Rspec控制器测试

时间:2011-04-22 14:17:26

标签: rspec2 ruby-on-rails-3 factory-bot

我怀疑我对此非常愚蠢并且遗漏了一些明显的东西。但我相当新的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非常感谢

1 个答案:

答案 0 :(得分:0)

您的控制器正在将其@pages实例变量设置为nil。很可能它根本没有被分配。您确定要粘贴的代码段吗?

@pages = Page.where(:page_type => "homepage").limit(2)
在您的控制器的index操作中调用

?如果是这样,该代码会将@pages设置为空列表,而不是nil。