Rails 6 个 validate_presence_of 测试全部失败
Rails 6 all validate_presence_of tests fail
他们失败了:统一常量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 继承的用户,但我不确定为什么常数会在同一模型的不同测试中有所不同?
事实证明这是 shoulda-matchers 的错误。
我完成了这项工作。
此处有 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'
就我而言,这是快速修复:
# spec/rails_helper.rb - add to bottom
class ActiveModel::SecurePassword::InstanceMethodsOnActivation; end;
他们失败了:统一常量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 继承的用户,但我不确定为什么常数会在同一模型的不同测试中有所不同?
事实证明这是 shoulda-matchers 的错误。
我完成了这项工作。
此处有 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'
就我而言,这是快速修复:
# spec/rails_helper.rb - add to bottom
class ActiveModel::SecurePassword::InstanceMethodsOnActivation; end;