如何在 rails 中测试关联?

how testing association in rails?

请测试协会帮忙。我有模型:

class Album < ActiveRecord::Base
  belongs_to :user
end

class User < ActiveRecord::Base
  has_many :albums, dependent: :destroy
end

我尝试测试关联:

describe Album do
  describe 'associations' do
     it "belongs_to user" do
        should belongs_to(:user)
     end
  end  
end

在控制台中 运行 测试后,我得到以下信息:

Failures: 1) Album associations belongs_to user Failure/Error: should belongs_to(:user) NoMethodError: undefined method belongs_to' for #<RSpec::ExampleGroups::Album::Associations:0x0000000762bc98> # ./spec/models/album_spec.rb:36:inblock (3 levels) in '

Finished in 1.41 seconds (files took 2.32 seconds to load) 7 examples, 1 failure Failed examples: rspec ./spec/models/album_spec.rb:35 # Album associations belongs_to user

您可以使用 gem shoulda:

belong_to 匹配器轻松测试此关联
describe Album do
  it { should belong_to(:user) }
end

参见this for an example