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
所以我正在使用 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