2015-03-19 5 views
4

Я довольно новичок в тестировании, поэтому не стесняйтесь исправить меня, если я ошибаюсь в своем подходе к этому.Что такое эквивалент capybara для assert_select Minitest?

Я тестирую приложение Rails4 с помощью Minitest. Поскольку у меня есть JS, включенный во многие страницы, я использую Capybara для использования JS-драйверов в своих тестах, а также для запуска JS-событий и проверки ожидаемых результатов. Здесь начинается мое замешательство, так как есть много способов включить Capybara.

Кроме того, я узнал, что «обычный» синтаксис стиля утверждения не будет работать с Capybara. И здесь мои путаницы. Во время моих исследований я обнаружил, что для Capybara есть DS-стиль Spec, и еще несколько. Теперь я использую камень «MiniTest-рельсы-Капибара» (Github), и я пытался работать с методами/DSL в этом списке: RubyDoc

Я пытался заменить простое утверждение, что тесты на HTML элемент.

перед: assert_select "title", "Study | Word Up"

сейчас: page.has_selector?('title', :text => "Study | Word Up")

Но независимо от того, что я проверить, тест всегда проходит. Как это возможно? Я проверил журналы сервера, чтобы узнать, есть ли я на правильной странице. Но все кажется прекрасным, проходящий тест не имеет смысла.

ответ

4

Вы должны использовать Капибара-х assert_selector:

assert_selector "title", text: "Study | Word Up" 

Если вы пытаетесь утверждать название документа из головного элемента, а не тела, то вам нужно использовать assert_title:

assert_title "Study | Word Up" 
+0

Спасибо, assert_title - это то, что я искал. – Flip

2

Вы должны использовать assert:

assert page.has_selector?('title', :text => "Study | Word Up") 

has_selector? возвращает логическое значение, и вы должны проверить значение этого булева.

+0

Хороший знать, но, к сожалению, теперь тест не проходит и он должен пройти: «Minitest :: Assertion: Failed assertion, no message given.» – Flip

+0

Я узнал, что has_selector? метод работает только для элементов, которые видны пользователю. Поэтому, наверное, поэтому мой подход не сработал. – Flip

Смежные вопросы