1

不起作用:

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 的惯用方式。我做错了什么还是应该是这样?

4

1 回答 1

3

您应该简单地替换letlet!,这将直接创建对象。

于 2013-06-24T09:14:54.207 回答