【发布时间】:2014-06-04 05:21:35
【问题描述】:
目前,使用 rspec-rails (2.14.2),我使用 shoulda (3.5.0) gem 测试我在模型规范中的关联,如下所示:
# app/models/user.rb
class User < ActiveRecord::Base
belongs_to :school
end
# spec/models/user_spec.rb
describe User do
it { should belong_to :school }
end
经过一些研究,我试图让关联相关的断言起作用(它们似乎都失败了)。
错误信息:
1) User
Failure/Error: it { is_expected.to belong_to :school }
NoMethodError:
undefined method `belong_to' for #<RSpec::ExampleGroups::School:0x007f8a4c7a68d0>
# ./spec/models/user.rb:4:in `block (2 levels) in <top (required)>'
所以我的问题是:
- 您可以在没有 shoulda gem 的情况下测试关联吗?根据我所看到的“期望”语法,这似乎是不可能的。
- should gem 是否与每个人的 rspec 3.0.1 中断?有解决办法吗?
【问题讨论】:
-
您是否在 Gemfile 中包含了
gem 'shoulda-matchers'? -
我有“should” gem,但没有“should-matchers”。这是我之前设置的方式。
-
我认为你应该做到like this
-
我认为你的关联应该是
belongs_to :school(学校是uniq)。也许这是问题的根源 -
这是一个错误,但看起来与此无关。
标签: ruby-on-rails ruby rspec shoulda