2012-12-12 5 views
6

W moich rspec testów integracyjnych, kiedy mam twierdzenie takie jak:Jak określić wiadomość awaryjności dla assert w RSpec/Kapibara

assert page.has_content? some_value 

jeśli twierdzenie nie powiedzie, to wyświetla:

MiniTest::Assertion: 
Failed assertion, no message given 

Najmniejsi docs mówią: "Wszystkie metody asercji akceptują komunikat, który zostanie wydrukowany, jeśli asercja się nie powiedzie", ale nie mogę znaleźć żadnych przykładów JAK określić wiadomość. To nie są ważne składnia:

assert("custom fail msg") page.has_content? some_value 

assert page.has_content? some_value, "custom fail msg" 

Odpowiedz

4

Spróbuj:

assert page.has_content?(some_value), "custom fail msg" 

Zakładając Mam powielana swój błąd prawidłowo, problem ze swoim drugim podejściu jest to, że Ruby jest zdania, że ​​„zwyczaj nie rob” jest parametrem page.has_content?, a nie assert. Dodanie nawiasów wokół parametrów dla page.has_content? powinno rozwiązać problem.

+0

Dziękuję - na pewno nie widziałem tego udokumentowanego nigdzie indziej, a twoje wyjaśnienie ma sens. – jpwynn