Rails Factory_Bot和reflect_on_association?

时间:2018-08-16 05:09:02

标签: ruby-on-rails rspec factory-bot

因此,我使用RSpec + Factory_Bot_Rails编写测试。我正在尝试测试关联。除此之外,一切都在工作:

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

MYSQL_OPT_RECONNECT

但是,如果我做类似的事情:

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

我收到一个错误:

widget.reflect_on_association(:widget_owner)

这使我认为w / let工厂实际上不是在创建数据吗? (即使我看到它正在数据库中创建...)。我想念什么吗?

2 个答案:

答案 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