因此,我使用RSpec + Factory_Bot_Rails编写测试。我正在尝试测试关联。除此之外,一切都在工作:
我通过以下方式设置示例数据:
MYSQL_OPT_RECONNECT
但是,如果我做类似的事情:
let(:widget){ FactoryBot.create(:widget) }
我收到一个错误:
widget.reflect_on_association(:widget_owner)
这使我认为w / let工厂实际上不是在创建数据吗? (即使我看到它正在数据库中创建...)。我想念什么吗?
答案 0 :(得分:2)
据我所知ActiveRecord::Reflection::ClassMethods#reflect_on_association是一个类方法,但是widget
是一个实例,因此widget.class.reflect_on_association(:widget_owner)
应该可以工作。
答案 1 :(得分:1)
对于测试关联,假设小部件具有一个widget_owner
expect(Widget.reflect_on_association(:widget_owner).macro).to eq :has_one