Rails 6 все тесты validate_presence_of не пройдены - PullRequest
0 голосов
/ 20 января 2019

они терпят неудачу с: unitialized constant ActiveModel :: SecurePassword :: InstanceMethodsOnActivation

Я пытаюсь обновить приложение rails 5.2 до бета-версии rails 6, и кажется, что все работает нормально, за исключением моих validate_presence_of specs.

Например,

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 of - нет.Сообщения принадлежат пользователю, который наследуется от Clearance :: User, но я не уверен, почему константа может отличаться в разных тестах для одной и той же модели?

Ответы [ 3 ]

0 голосов
/ 31 января 2019

Я выполнил эту работу.

Здесь есть запрос на получение доступа к musta_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'
0 голосов
/ 17 апреля 2019

В моем случае это было быстрое решение:

# spec/rails_helper.rb - add to bottom

class ActiveModel::SecurePassword::InstanceMethodsOnActivation; end;
0 голосов
/ 20 января 2019

Оказывается, это ошибка с musta-matchers.

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

...