我正在尝试使用rspec 3.0测试belongs_to关联,但我一直遇到错误
NoMethodError:RSpec :: Core的未定义方法`belongs_to'
it "should belong to a user" do
ride = Ride.new
user = User.new
user.rides << ride
expect(ride).to belong_to user
端
我在rspec 3.0的文档中找不到任何测试高级关联的内容。求救!
答案 0 :(得分:1)
您只需检查关联:
it "belongs to a user" do
ride = Ride.new
user = User.new
user.rides << ride
expect(ride.user).to be user
end
在此上下文中,be
匹配器验证对象标识。因此,当且仅当user
对象具有相同的object_id
时,这将通过。在这种情况下,这就是你想要的,并且在阅读方式上具有语义意义。
答案 1 :(得分:1)
shoulda-matchers是提供关联,验证和其他匹配器的宝石。
看看这个答案: Testing associations with rspec-rails 3.0.1 and shoulda doesn't work
答案 2 :(得分:0)
我最终使用
expect(ride).to respond_to :user