我正在尝试使用 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 的文档中找不到任何东西来测试高级关联。请帮忙!
我正在尝试使用 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 的文档中找不到任何东西来测试高级关联。请帮忙!
您可以简单地检查关联:
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
. 在这种情况下,这就是您想要的,并且对于它的阅读方式在语义上是有意义的。
shoulda-matchers 是提供关联、验证和其他匹配器的 gem。
看看这个答案: Testing associations with rspec-rails 3.0.1 and shoulda doesn't work
我最终使用
expect(ride).to respond_to :user