在rspec中指定什么意思

时间:2013-04-21 16:02:32

标签: ruby-on-rails rspec bdd

这行代码有什么作用?

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

在以下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

1 个答案:

答案 0 :(得分:16)

assigns与在控制器操作中创建的实例变量相关(并分配给视图)。


在评论中回答你的评论,我想:

  • 1)您的索引操作看起来像@articles = Articles.all(我希望您使用分页)

  • 2)在上面的spec块之前,你有一篇在db中创建的文章(或者我希望你在db中存根db查询)

  • 1 + 2 => @articles应该包含一篇文章,这是您的规范期望