4

我正在尝试使用 rspec 3.0 测试 belongs_to 关联,但我一直遇到错误

NoMethodError:RSpec::Core 的未定义方法“belong_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 的文档中找不到任何东西来测试高级关联。请帮忙!

4

3 回答 3

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. 在这种情况下,这就是您想要的,并且对于它的阅读方式在语义上是有意义的。

于 2014-07-03T16:39:23.207 回答
1

shoulda-matchers 是提供关联、验证和其他匹配器的 gem。

看看这个答案: Testing associations with rspec-rails 3.0.1 and shoulda doesn't work

于 2014-10-20T11:27:51.787 回答
0

我最终使用

expect(ride).to respond_to :user

于 2014-06-28T13:47:02.703 回答