Я тестирую свои модели 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
метода.