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

上記は最初の形式では通用しませんが、2 番目の形式では通用します。これは、Factorygirl の部分が最初のバージョンでは訪問後まで初期化されていませんでしたが、2 番目のバージョンでは以前に初期化されているためです。これでは、最近の RSpec の慣用的な方法である let を使用できません。私は何を間違っているのですか、それともこうあるべきですか?

4

1 に答える 1

3

に置き換えるだけで、オブジェクトが直接作成letされます。let!

于 2013-06-24T09:14:54.207 に答える