RSpec 测试因未定义的方法“validate_uniqueness_of”而失败

alp*_*aca 5 ruby rspec ruby-on-rails

使用 Rails 5 和 RSpec 3.5,我收到以下错误。

  1) User
     Failure/Error: it { should validate_uniqueness_of(:auth_token)}

     NoMethodError:
       undefined method `validate_uniqueness_of' for #<RSpec::ExampleGroups::User:0x007fab919f8cf
8>
     # ./spec/models/user_spec.rb:14:in `block (2 levels) in <top (required)>'
Run Code Online (Sandbox Code Playgroud)

我在谷歌上搜索了正确的语法,但找不到解决方案。有没有人知道在这里使用什么?谢谢

Pab*_*aga 7

您必须将 gem 添加到 Gemfile 中:

宝石文件

group :test do
  gem 'shoulda-matchers'
end
Run Code Online (Sandbox Code Playgroud)

并包括它:

规格/rails_helper.rb

RSpec.configure do |config|
  config.include(Shoulda::Matchers::ActiveModel, type: :model)
  config.include(Shoulda::Matchers::ActiveRecord, type: :model)
end
Run Code Online (Sandbox Code Playgroud)