Ruby on rails Rails工厂机器人和反思协会?

Ruby on rails Rails工厂机器人和反思协会?,ruby-on-rails,rspec,factory-bot,Ruby On Rails,Rspec,Factory Bot,因此,我正在使用RSpec+Factory\u Bot\u Rails编写测试。我正在尝试测试关联。除此之外,一切正常: 我通过以下方式设置样本数据: let(:widget){ FactoryBot.create(:widget) } 但如果我这样做: widget.reflect_on_association(:widget_owner) 我收到一个错误: undefined method `reflect_on_association' for #<Widget:0x007f9a

因此,我正在使用RSpec+Factory\u Bot\u Rails编写测试。我正在尝试测试关联。除此之外,一切正常:

我通过以下方式设置样本数据:

let(:widget){ FactoryBot.create(:widget) }
但如果我这样做:

widget.reflect_on_association(:widget_owner)
我收到一个错误:

undefined method `reflect_on_association' for #<Widget:0x007f9a4cdedb98>
未定义的方法“在关联上反映”#

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

据我所知是一个类方法,但是
widget
是一个实例,所以
widget.class.reflect\u on\u关联(:widget\u owner)
应该有效。

据我所知是一个类方法,但
widget
是一个实例,所以
widget.class.reflect\u on\u关联(:widget\u owner)
应该可以工作。

对于测试关联,假设小部件有一个小部件所有者

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

对于测试关联,假设widget有一个widget\u所有者

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

啊,说得好。我看到的一些例子出于某种原因引用了这个例子。在这种情况下,为它编写一个测试真的有意义吗?既然你不在那一点上检查ActiveRecord吗?好的。我看到的一些例子出于某种原因引用了这个例子。在这种情况下,为它编写一个测试真的有意义吗?既然你当时不只是在检查ActiveRecord吗?