2016-03-14 6 views
1

Я пишу тест, в рельсах MiniTest, у меня есть два сценария, первый из них:разница между утверждаете и assert_select

assert_select "button.btn[type=submit]", I18n.t('pay_and_post_job') 

Но когда я запускаю это тогда я получаю сообщение об ошибке

Ожидаемый по крайней мере, один элемент, соответствующий "button.btn [тип = представить]", найдено 0 .. Прогнозных 0 должно быть> = 1.

Но если я пишу такое же утверждение, как:

assert "button.btn[type=submit] #{I18n.t('pay_and_post_job')}" 

Затем тест проходит

Может кто-нибудь объяснить мне, что именно происходит ??

ответ

1

assert и assert_select - это два разных инструментария. Первый - очень общий и только тесты, если его первый аргумент является истинным значением. assert "button" всегда будет проходить как "button" является правдой.

С другой стороны, assert_select - это Rails и проверяет ваш выход на html. Попробуйте уменьшить тестовую инструкцию до тех пор, пока она не пройдет, если assert_select "[type=submit]" все еще терпит неудачу в вашей шаблоне. Моя ставка заключается в том, что assert_select "input.btn[type=submit]" пройдет.

+0

Вы правы на самом деле, я делал ошибку. В представлении это было поле ввода, а не поле кнопки, теперь его прохождение –

+0

, что ошибки в документации – Edward