рельсы: разработать проверяемый модульный тест всегда проходит, когда он должен потерпеть неудачу - PullRequest
3 голосов
/ 13 марта 2012

Я что-то здесь упускаю, но не могу найти проблему.Этот тест действительно прост, и он должен провалиться, но он всегда проходит.Это создает пользователя с несоответствующими паролями.

У меня есть это в моей модели пользователя.Итак, я знаю: validatable установлен.

devise :database_authenticatable, :registerable,
     :recoverable, :rememberable, :trackable, :validatable

Когда я тестирую его вручную с помощью консоли, он работает просто отлично.Это не позволит мне сохранить несовпадающие пароли

Вот модульный тест:

user = User.new_normal_user(
          :email                  => 'some@email.com', 
          :password               => 'some_password', 
          :password_confirmation  => 'some_other_password'
          )          

assert user.save

Но по какой-то странной причине при запуске модульного теста он сохраняет, когда не должен,Я в тупике.Я не могу понять это.

1 Ответ

0 голосов
/ 13 марта 2012

Я решил проблему. Я перезаписал password_required? функция. Где он только вернет ложь при определенных условиях. Это никогда не вернет истину. Поэтому я просто заставил его возвращать значение true или false, когда это необходимо, и модульный тест работает, как ожидалось, и перехватывает пароли, не соответствующие проблеме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...