RSPEC失败,未初始化工厂

时间:2018-07-26 08:06:19

标签: ruby-on-rails rspec-rails

在我的应用中,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的行没有任何作用。似乎工厂没有正确初始化,直到有指向它的地方。

可能是什么导致它失败/无法使用/不带注释行的问题?

1 个答案:

答案 0 :(得分:1)

  

似乎工厂没有得到适当的初始化,直到有指向它的地方。

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

对于要始终创建的内容,请使用let!而不是let。或在before块中创建它们。