Как я могу использовать `should validate_presence_of` с пользовательским сообщением об ошибке?

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

... с ошибкой Ожидаемые ошибки включают "can't be blank", когда accepted_terms_at установлен в nil.

Таким образом, тест проваливается, потому что он просматривает сообщения об ошибках валидации и ожидает найти стандартное сообщение.

Как я могу сказать Rspec, каким должно быть новое сообщение валидации?

Что я пробовал

1) Сообщение как аргумент:

it {should validate_presence_of(:accepted_terms_at, :message => 'your message')}

Это дает ошибку неверное количество аргументов (2 для 1)

2) Сообщение как вызов цепочки методов

it {should validate_presence_of(:accepted_terms_at). with('your message')}

Это приводит к ошибке, потому что нет метода with.

26
задан tal 18 January 2012 в 10:49
поделиться