Огурец + тестирование JS alert
Я пытаюсь проверить диалог подтверждения JS с Cucumber on Rails. У меня есть обработчик события window.onbeforeunload, который предложит вам диалог подтверждения, если вы попытаетесь перейти от страницы, но я понятия не имею, как его протестировать, у кого есть идея о том, как это можно сделать?
Ответы
Ответ 1
Существуют различные функции селена, которые вы можете использовать для захвата предупреждений/подтверждений.
Они не доступны непосредственно с реализацией селена webrat, но при использовании webrat config.mode = :selenium
их можно использовать следующим образом:
Then /^I should see a JS alert$/ do
selenium.is_alert_present.should be_true
end
# or
Then /^I should see a "Are you sure?" JS confirm dialog$/ do
selenium.get_alert.should eql("Are you sure?")
end
# you can also click the OK/Cancel buttons on confirm boxes with
selenium.chooseOkOnNextConfirmation();
#and
selenium.chooseCancelOnNextConfirmation();
Вероятно, не самые большие тесты, но дает вам представление.
Внутренний селен переопределяет функции alert() и confirm() JS, чтобы он мог захватывать эту информацию.
Вы можете найти больше документов на selenium faq или на своем сервере драгоценных камней
Ответ 2
См. определения методов в http://selenium-client.rubyforge.org/classes/Selenium/Client/Idiomatic.html
Вы можете вызвать их с помощью вспомогательного объекта selenium в определениях шага Cucumber - например,
Then /^I should see a JS confirm dialog saying "([^\"]*)"$/ do |statement|
selenium.confirmation.should eql(statement)
end
Ответ 3
Вы можете использовать Webrat или Selenium с огурцом, чтобы проверить это.
Я предполагаю, что вы хотите использовать Simulated Browser или Automated Browser,
В таких случаях вы можете использовать Webrat или Webrat:: Selenium или просто Selenium с огурцом.
Я тестировал это, используя Selenium и Cucumber раньше, но, похоже, не могу найти код, отредактирует сообщение, если я это сделаю.
НТН
Ответ 4
Я бы рекомендовал использовать screw-unit для тестирования поведения JavaScript на странице. Вы также можете взглянуть на плагин Relevance blue-ridge, который включает в себя винтовой блок и добавляет поддержку командной строки и тестирования браузера js. Вы можете найти его на github по релевантности/сине-гребне. (У меня еще нет сообщения, чтобы разместить более одной ссылки: (
Было бы интересным упражнением использовать винтовой блок и/или сине-гребень для проведения тестов на огурцы и, вероятно, не так сложно снять.
Ответ 5
Этот метод имеет шаги для тестирования диалогового окна подтверждения JS в Rails 2 и 3 с любым драйвером Capybara, должен быть легко адаптирован к предупреждению коробка.