Я использую Ruby on Rails с Cucumber и Capybara.
Как мне протестировать простую команду подтверждения («Вы уверены?»)?
Кроме того, где я могу найти дополнительную документацию по этому вопросу?
automated-tests
capybara
integration-testing
Юваль Карми
источник
источник
Ответы:
Похоже, в Capybara, к сожалению, этого не сделать. Но если вы запускаете свои тесты с драйвером Selenium (и, возможно, с другими драйверами, поддерживающими JavaScript), вы можете его взломать. Непосредственно перед выполнением действия, которое вызовет диалоговое окно подтверждения, переопределите
confirm
метод, чтобы он всегда возвращал true. Таким образом, диалоговое окно никогда не будет отображаться, и ваши тесты могут продолжаться, как если бы пользователь нажал кнопку ОК. Если вы хотите смоделировать обратное, просто измените его, чтобы вернуть false.источник
Драйвер селена теперь поддерживает это
Из Capybara вы получите доступ к нему следующим образом:
или
или
источник
page.driver.browser
в ответе ДерекаЯ реализовал эти два веб-шага в
/features/step_definitions/web_steps.rb
:источник
Если вы хотите специально протестировать отображаемое сообщение, вот особенно хитрый способ сделать это. Я не одобряю его как красивый код, но он выполняет свою работу. Вам нужно будет загрузить http://plugins.jquery.com/node/1386/release или изменить его, чтобы файлы cookie были изначально, если вам не нужен jQuery.
Используйте такую историю:
И эти шаги
источник
Обновление для текущих выпусков Capybara. Большинство драйверов Capybara сегодня поддерживают модальный API. Чтобы принять модальное окно подтверждения, вы должны сделать
Это можно использовать в Cucumber с чем-то вроде
который щелкнет названную кнопку, а затем примет окно подтверждения с текстом, совпадающим с сообщением
источник
Водосвинка-WebKit драйвер поддерживает это , а также.
источник
источник
Prickle добавляет несколько удобных методов для работы со всплывающими окнами в selenium и webkit.
источник
Это суть содержит шаги для тестирования диалогового окна подтверждения JS в Rails 2 и 3 с любым драйвером Capybara.
Это адаптация предыдущего ответа, но не требует плагина jQuery Cookie.
источник
Пробовал приведенные выше ответы безуспешно. В конце концов, это сработало для меня:
источник