Ich versuche einen JS-Bestätigungsdialog mit Gurke auf Schienen zu testen. Ich habe einen window.onforeunload-Event-Handler, der Sie mit einem Bestätigungsdialog fragt, wenn Sie versuchen, von der Seite zu navigieren, aber ich habe keine Ahnung, wie Sie es testen, hat jemand eine Idee, wie dies getan werden kann?Gurke + JS-Alarm testen
Antwort
gibt es verschiedene Funktionen von Selen können Sie Warnungen/bestätigt zu erfassen verwenden Sie sind nicht direkt mit der webrat Selen Implementierung zur Verfügung, aber wenn die Verwendung webrat config.mode = :selenium
sie wie folgt verwendet werden:.
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();
Es gibt wahrscheinlich nicht die größten Tests, aber gibt Ihnen eine Idee. Intern selen überschreibt die Funktionen alert() und confirm() von JS, damit diese Informationen erfasst werden können.
können Sie mehr Dokumente finden auf der selenium faq oder auf Ihrem gem Server
Sie können Webrat oder Selen mit Gurke verwenden, um dies zu testen.
Meine Vermutung ist, dass Sie Simulierte Browser oder automatisierte Browser Testen möchten,
Sie verwenden webrat oder webrat :: Selen oder einfach Selen mit Gurke in solchen Fällen.
Ich habe dies mit Selen und Gurke vorher getestet, aber kann nicht scheinen, den Code zu finden, wird die Post bearbeiten, wenn ich es tue.
HTH
würde ich auf einer Seite mit screw-unit zum Testen Javascript Verhaltens empfehlen. Sie können sich auch das Blue-Grid-Plugin von Relevance ansehen, das eine Schraubeneinheit enthält und Unterstützung für die Befehlszeilen- und Browser-JS-Tests bietet. Sie können es auf GitHub unter Relevanz/Blue-Ridge finden. (Ich habe nicht die rep noch zu mehr als eine Verbindung zu posten :(
Es wäre eine interessante Übung zu Schraubeneinheit und/oder Blue-Ridge zu Gurken-Tests zu fahren, und wahrscheinlich nicht so schwer zu ziehen off.
die Methodendefinitionen finden Sie in http://selenium-client.rubyforge.org/classes/Selenium/Client/Idiomatic.html
Sie können sie mit dem Selen Hilfsobjekt in Ihrer Cucumber Schritt Definitionen aufrufen - zB
Then /^I should see a JS confirm dialog saying "([^\"]*)"$/ do |statement|
selenium.confirmation.should eql(statement)
end
This gist Schritte hat eine JS Bestätigungsdialog in Rails 2 und 3 mit jedem Capybara-Treiber zu testen, sollte einfach zu einem Warnfeld anzupassen.
Wenn Sie "selenium.chooseOkOnNextConfirmation()" nicht verwenden möchten, können Sie 'selen.get_alert' verwenden, um den Alarm nach dem Aufruf von' selen.is_alert_present' zu konsumieren. Wenn Sie keines dieser Dinge tun, wird Ihre nächste Selen-Anweisung aufgrund der ausstehenden Warnung fehlschlagen. – Loktar