Я тестирую свои модели ActiveRecord с помощью Rspec. Я только что добавил специальное сообщение об ошибке в одну из моих проверок, например:
validates :accepted_terms_at, :presence => {:message => 'You must accept the Terms and Conditions to use this site.'}
Теперь следующий тест не выполняется:
it { should validate_presence_of(:accepted_terms_at) }
... с ошибкой Expected errors to include "can't be blank" when accepted_terms_at is set to nil
.
Таким образом, тест терпит неудачу, потому что он просматривает сообщения об ошибках проверки и ожидает поиска по умолчанию.
Как сообщить Rspec, что должно быть новым сообщением о проверке?
Что я пробовал
1) Сообщение в качестве аргумента:
it {should validate_presence_of(:accepted_terms_at, :message => 'your message')}
Это дает ошибку wrong number of arguments (2 for 1)
2) Сообщение как вызов цепного метода
it {should validate_presence_of(:accepted_terms_at).with('your message')}
Это вызывает ошибку, поскольку метод with
отсутствует.