不起作用:
feature "home: don't list inactive flash sales" do
let(:inactive_flash_sale) { create(:inactive_flash_sale, active: false) }
scenario "does not list inactive flash sales" do
visit spree.root_path
expect(page).to_not have_content(inactive_flash_sale.name)
end
end
使用:
feature "home: don't list inactive flash sales" do
scenario "does not list inactive flash sales" do
inactive_flash_sale = create(:inactive_flash_sale, active: false)
visit spree.root_path
expect(page).to_not have_content(inactive_flash_sale.name)
end
end
以上内容不会以第一种形式传递,但会在第二种形式传递。这是因为Factorygirl部件直到第一个版本访问后才初始化,但它在第二个版本之前初始化。这不允许我使用let虽然这是最近使用RSpec的惯用方法。我做错了什么,或者这是怎么回事?
答案 0 :(得分:3)
您只需将let
替换为let!
,这将直接创建对象。