rspec 3.0 belongs_to association

时间:2014-06-27 01:40:27

标签: ruby-on-rails rspec3

我正在尝试使用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的文档中找不到任何测试高级关联的内容。求救!

3 个答案:

答案 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