我有以下觀點我不能符合規範出正確的觀點規格:如何將一個塊傳遞給have_selector?
文件:「產品/ index.html.haml」
#products
= render @products
這是我的看法規格:
require 'spec_helper'
describe "products/index.html.haml" do
let(:products) {[mock_model(Product)]}
before do
stub_template "products/product.html.haml" => ""
render
end
it "should render the products" do
rendered.should have_selector(#products) do
rendered.should render_template products
end
end
這裏的問題是,have_selector不接受一個塊,所以沒有辦法斷言局部呈現在#products div內。由於水豚匹配器不能在View規格內工作,因此您不能在兩者中使用。
也看到這個問題:https://github.com/rspec/rspec-rails/issues/387
一個查看規格的主要優點是能夠隔離測試每一個人觀點。您的方法將部分與呈現它的視圖鏈接起來。此外,該塊只會傳遞「呈現」。它沒有檢查.product是否在#products – dwilkie 2011-06-09 04:37:55
對不起,你錯了,它沒有通過渲染塊,但只有與選擇器相匹配的部分,因此你可以檢查'.product'是否在'#products'裏面。 – 2011-06-09 08:00:50
抱歉,你錯了。親自嘗試一下。使用以下內容創建視圖: