rspec测试内容

时间:2011-06-22 16:12:05

标签: ruby-on-rails rspec

我正在使用Rspec来测试我的Controller规范中视图的内容。我正在尝试测试所有Product条目是否在页面上显示了它们的描述。

describe StoreController do
  render_views

  describe "GET 'index'" do

    before(:each) do
      get :index
    end

    it "should display the product list" do
      Product.all.each do |product|
        response.should have_selector("p", :content => product.description)
      end
    end

  end
end

然而,这似乎不起作用,因为无论视图中的内容如何,​​测试都会通过。对于Rails来说还是一个新手,所以很可能我在这里做了一些完全错误的事情。如何在StoreController索引视图中对每个产品描述的存在进行代码测试?

2 个答案:

答案 0 :(得分:4)

我个人不会测试控制器中视图的内容。我只是测试控制器操作的输出输出和任何支持方法。我将视图相关测试放入视图规范中。

如果你查看rails生成的那些,你应该看到一些如何在那里断言内容的例子。

答案 1 :(得分:0)

我明白了。问题是我的测试数据库没有填充任何Products,因此each块从未执行过。通过使用Factory Girl确保预先确定测试数据库中有数据来修复它。