2

他们失败了:统一常量 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 继承的用户,但我不确定为什么常数会在同一模型的不同测试中有所不同?

4

3 回答 3

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'
于 2019-01-31T01:20:48.270 回答
0

原来这是一个应该匹配器的错误。

https://github.com/thoughtbot/should-matchers/issues/1167

于 2019-01-20T07:10:56.003 回答
0

就我而言,这是快速修复:

# spec/rails_helper.rb - add to bottom

class ActiveModel::SecurePassword::InstanceMethodsOnActivation; end;
于 2019-04-17T14:12:29.663 回答