Rails Factory_Bot 和 reflect_on_association?

Rails Factory_Bot and reflect_on_association?

所以我正在使用 RSpec + Factory_Bot_Rails 编写测试。我正在尝试测试关联。除此之外一切正常:

我通过以下方式设置示例数据:

let(:widget){ FactoryBot.create(:widget) }

但是如果我这样做:

widget.reflect_on_association(:widget_owner)

我收到一个错误:

undefined method `reflect_on_association' for #<Widget:0x007f9a4cdedb98>

这让我觉得工厂 w/let 实际上并没有创建数据? (即使我看到它是在数据库中创建的......)。我错过了什么吗?

据我所知,ActiveRecord::Reflection::ClassMethods#reflect_on_association 是一个 class 方法,但 widget 是一个实例,所以 widget.class.reflect_on_association(:widget_owner) 应该可以工作。

为了测试关联,假设小部件有一个 widget_owner

expect(Widget.reflect_on_association(:widget_owner).macro).to eq :has_one