它们失败,并带有:统一常量ActiveModel :: SecurePassword :: InstanceMethodsOnActivation
我正在尝试将Rails 5.2应用程序更新为Rails 6 beta,除我的validate_presence_of规格外,其他一切似乎都正常运行。
例如
RSpec.describe Post, type: :model do
context 'validations' do
subject { Post.new(body: Faker::Movie.quote)}
it { should validate_presence_of :body }
it { should validate_length_of(:body).is_at_most(5000).on(:create) }
end
end
validate_length_of可以通过,而validate_presence无法通过。帖子的确属于从Clearance :: User继承的用户,但是我不确定为什么对于相同模型的不同测试,常数会有所不同?
答案 0 :(得分:2)
我已经完成了这项工作。
这里有一个对shoulda_matchers的拉取请求:
https://github.com/thoughtbot/shoulda-matchers/pull/1169
在shoulda_matchers团队将其合并之前,请在此处使用我的版本:
https://github.com/morsedigital/shoulda-matchers
在您的Gemfile中:
gem 'shoulda-matchers', groups: [:test], git: 'https://github.com/morsedigital/shoulda-matchers'
答案 1 :(得分:0)
结果证明这是应当匹配器的错误。
答案 2 :(得分:0)
就我而言,这是快速解决方法:
# spec/rails_helper.rb - add to bottom
class ActiveModel::SecurePassword::InstanceMethodsOnActivation; end;