使用shoulda_matchers进行Rspec测试belongs_to

时间:2017-03-02 12:25:28

标签: ruby-on-rails ruby activerecord rspec shoulda

我的模型中有这段代码。

belongs_to :user, -> { includes :user_profile }

我经历了shoulda doc我没有找到任何方法来测试proc 包含includes部分。请帮忙。

1 个答案:

答案 0 :(得分:0)

假设有问题的模型名为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