RSPEC 失败,没有初始化工厂

RSPEC fails, doesn't initialize factory

在我的应用中,project has_many another_project。 我有以下测试:

describe 'some test' do
    let(:project) { create(:live_project) }
    let(:another_project) { create(:another_project, :project => project ) }

    # before do
    #  another_project
    # end

    it 'does something' do
        expect ...
    end
end

除非注释代码运行,否则它会失败。

这看起来很奇怪,因为带有 another_project 的行没有做任何事情。似乎工厂没有正确初始化,直到有东西指向它。

可能是什么问题导致 fail/work with/without 那些注释行?

It seems as if the factory isn't being properly initialised until something points to it.

这是一项功能。延迟初始化,它被称为。如果一个东西不用,为什么要创造它?

使用 let! 而不是 let,用于您希望始终创建的内容。或者在 before 块中创建它们。