我想使用RSpec來測試模型之間的關係。我有兩個型號:通過與Ruby-on-Rails 4.1的關係遇到RSpec 3.1.0和has_many的問題
class User < ActiveRecord::Base
has_many :user_roles
has_many :roles, through: :user_roles
end
和
class Role < ActiveRecord::Base
has_many :user_roles
has_many :users, through: :user_roles
end
有通類:
class UserRole < ActiveRecord::Base
belongs_to :user
belongs_to :role
end
我的RSpec的代碼是:
describe User do
it { is_expected.to have_many(:user_roles) }
it { is_expected.to have_many(:roles).through(:user_roles) }
end
這些拋出錯誤的兩個:
1)用戶應該有很多:user_roles 故障/錯誤:它{is_expected.to have_many(:user_roles)} 預期#向has_many?
#./spec/models/user_spec.rb:49:in`迴應塊(2級)在 '
2)用戶 故障/錯誤:它{is_expected.to have_many(:角色)。通過(:user_roles)} NoMethodError: 未定義的方法through' for #<RSpec::Matchers::BuiltIn::Has:0x007fe1cd003ac8> # ./spec/models/user_spec.rb:50:in
塊(2級)在'
無論我嘗試什麼,我似乎無法讓這些工作。任何人都知道我在做什麼錯了?
感謝您的幫助!