23

What does that line of code do?

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

in the following 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
4

1 回答 1

22

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


要在评论中回答您的评论,我想:

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

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

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

于 2013-04-21T16:10:34.640 回答