我正在使用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索引视图中对每个产品描述的存在进行代码测试?
答案 0 :(得分:4)
我个人不会测试控制器中视图的内容。我只是测试控制器操作的输出输出和任何支持方法。我将视图相关测试放入视图规范中。
如果你查看rails生成的那些,你应该看到一些如何在那里断言内容的例子。
答案 1 :(得分:0)
我明白了。问题是我的测试数据库没有填充任何Products
,因此each
块从未执行过。通过使用Factory Girl确保预先确定测试数据库中有数据来修复它。