Может кто-нибудь показать мне пример использования fault_message_for_should с использованием rspec? - PullRequest
0 голосов
/ 27 октября 2009

Я пытаюсь вернуть более информативные сообщения об ошибках из ожидания. У меня есть вспомогательный метод, который выполняет итерацию хэша, проверяя защиту массового назначения на модели. Если ожидание не удается, я хотел бы вывести, какой атрибут не удалось. Я столкнулся с fault_message_for_should, но я не уверен, как правильно его использовать.

Спасибо!

Ответы [ 2 ]

1 голос
/ 28 октября 2009

Просто напишите простое сопоставление, и тогда вы сможете указать свои собственные сообщения. Посмотрите на этот код:

def be_even
 simple_matcher("an even number") { |given| given % 2 == 0 }
end

describe 2 do
 it "should be even" do
  3.should be_even
 end
end

Поместите этот код в файл с именем so_spec.rb и запустите его так:

spec so_spec.rb -f n -c

Это даст вам следующий вывод:

'2 should be even' FAILED
expected "an even number" but got 3

и вы можете легко увидеть, что "четное число" - это действительно пользовательское сообщение, и оно более информативно, чем ожидалось. Это один из подходов. Тем не менее, rspec достаточно гибок, и вы можете написать свои собственные сопоставления, как сказал BJ Clark, и это даст вам еще большую гибкость. Я использовал как обычные, так и простые сопоставители, и иногда достаточно просто сопоставить. Есть несколько способов выбрать тот, который соответствует вашим потребностям.

0 голосов
/ 28 октября 2009

failure_message_for_should это не сопоставление, это метод, который вы перезаписываете, если пишете свой собственный сопоставитель. Я не думаю, что он делает то, что вы ищете.

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