Ich rüste von Gleisen 3.2.19 auf Schienen 4.1.5 auf, verwende rspec-rails 2.14.0.rc1 und capybara 2.4.1. Alle Tests bestehen und ich habe nur noch eine Verwarnungswarnung:
%Vor%Die Codezeile, die das verursacht, ist
%Vor%Wie ändere ich diese Zeile, um die Verwarnungswarnung zu beseitigen?
Wenn die Ausnahme besagt:
Bitte verwenden Sie stattdessen Capybara :: Session # accept_confirm.
Sie wollen wahrscheinlich:
%Vor% Beachten Sie, dass accept_confirm
anstelle des Treibers für die Capybara :: Session ausgeführt wird.
Diese Methode erwartet einen Block, der den Bestätigungsalarm auslöst. Zum Beispiel:
%Vor%Justin Ko's Antwort ist korrekt bezüglich der Verwendung von #accept_confirm - es ist
%Vor%oder Sie können
tun %Vor%was bestätigt, dass "Bist du sicher?" ist die Aufforderung im Bestätigungsfeld angezeigt.
Haben Sie in Ihrem versagenden Test zufällig mit einem anderen Modal zu tun? capybara-webkit hatte einen Bug mit mehreren Mods, der vor ein paar Tagen behoben wurde - Ссылка . Es ist noch nicht in einer veröffentlichten Version.
Ich hatte 50/50 Erfolg mit Justin Ko's Antwort. Derjenige, der funktionierte, hatte einen solchen Code:
%Vor%und dieser Test:
%Vor%Der Test, der fehlschlägt (aber Code hat, der im Browser funktioniert), hat Code
%Vor%und testen
%Vor%Die Fehlermeldung war
%Vor% Ich habe versucht, die method: :delete
in den :data
Hash zu verschieben, aber das hat nicht geholfen.
Es stellt sich heraus, dass die Verwarnungswarnung tatsächlich zwei Fehler im Code gefunden hat, da ich die Syntax von rails 3 zur Bestätigung verwendete, also nicht den :data
Hash verwendete, also war mein Code defekt, aber der page.driver.accept_js_confirms!
Test nicht Heb es auf. Das hat sich also gelohnt.
Ich habe page.driver.accept_js_confirms ersetzt! mit:
page.execute_script ('window.confirm = function () {return true}')
Und der Test ist bestanden.
Das war aus der Dokumentation hier: Ссылка
Und Hilfe von den Internets. Nun, das sagt uns noch nicht, wie man accept_confirm benutzt, also suche ich immer noch nach dieser Antwort.
Der eigentliche Code sieht so aus:
%Vor%Ehrlich gesagt, ich denke, es ist nur page.accept_confirm mit etwas anderes, aber ich kann nicht herausfinden, was oder in diesem Block übergeben.
Tags und Links ruby-on-rails capybara rspec capybara-webkit