【发布时间】:2017-07-22 04:23:12
【问题描述】:
我的模型中有这段代码。
belongs_to :user, -> { includes :user_profile }
我通过shoulda doc 没有找到任何方法来测试proc
包含includes 部分。请帮忙。
【问题讨论】:
-
没有任何内置的 AFAIK
标签: ruby-on-rails ruby activerecord rspec shoulda
我的模型中有这段代码。
belongs_to :user, -> { includes :user_profile }
我通过shoulda doc 没有找到任何方法来测试proc
包含includes 部分。请帮忙。
【问题讨论】:
标签: ruby-on-rails ruby activerecord rspec shoulda
假设有问题的模型被命名为Car(你还没有发布封闭类的名称,所以我完全是在编造这个)你可以测试它:
describe 'user' do
let(:car) { create_car_somehow }
it 'preloads the user_profile association' do
expect(car.user.association(:user_profile)).to be_loaded
end
end
#association 返回指定关联的元数据(ActiveRecord::Associations::BelongsToAssociation 类型等)。返回的对象响应#loaded?,如果关联已加载则返回true,否则返回false。
【讨论】:
be_loaded 在哪里定义?您可以发布文档链接吗?
expect(object).to be_foo 会自动转换为expect(object.foo?).to be_truthy。