Frage

Ich bin der Umsetzung eines Projekts mit Selen 2, die zur Zeit nicht Boxen Bestätigungsdialog sehr gut unterstützt.

Es gibt eine Abhilfe für diese Einschränkung, Sie überschreiben nur die window.confirm den Wert zurück, die Sie für den speziellen Testfall zurückkommen müssen.

Die folgenden Strings eingestellt werden können und dann ausgeführt:

public static final String CONFIRM_DIALOG_BOX = 
    "window.confirm = function(msg) { return true; }";

public static final String CANCEL_DIALOG_BOX = 
    "window.confirm = function(msg) { return false; }";

Das ist ziemlich einfach scheint als Vorlage Methode, jedoch habe ich mehrere Testfälle auf der gleichen Seite Objekt, wo ich bestätigen müssen / verweigern mit der Seite nach interagieren. So eine einzige Methode, die auf einmal alle, diese Tests zu tun, nicht funktioniert.

einen Befehl auszuführen in der Testmethode Spritzen Sinn machen könnte, aber mein Endziel hier ist unsere weniger technisches Personal zu ermöglichen, Tests zu erstellen, indem Sie einige Strings in XML schreiben und sie dann mit Feder Expression Language Ausführung; Dies beseitigt einige der „Leichtigkeit“, der die Prüfungen des Schreibens.

Wichtige Einschränkung ist, dass dieser Test Suite ist eigentlich eine Anwendung aufgrund Anforderungen und nicht eine Reihe von Testfällen, die einzeln ausgeführt werden. Es wäre viel einfacher, wenn sie kleine Testfälle waren, wie ich nur einen abstrakten Testfall erstreckt, und legen die gleiche Setup und Teardown-Routinen nutzen.

Was ich suche letztlich ist etwas in dieser Template-Methode, aber ich muss in der Lage mehrere Testfälle auf einer einzigen Seite Objekt zu unterstützen.

public final void executeTest(boolean confirmDialogBoxResponse) {

    // store normal functionality and allow us to return 
    // window.confirm to normal state upon completion of test.
    prepare(confirmDialogBoxResponse);

    testMethod(); // What about params to these methods?

    /* Adding an interface to the method would be nice, but 
     * would make things a bit more cumbersome for our
     * less technical staff, which would allow me to replace
     * the above with this:
     *
     *    executeTest(TestCommand command, confirmDialogResponse);
     *         command.execute(); // Still have params issue
     */

    // restore window.confirm to normal state -- if we cancel we stay 
    // on same page, and need to restore things as they were, the majority
    // of our confirm cases take you to new pages whereby window.confirm 
    // will be restored for us
    if (!confirmDialogResponse) {
        restore();
    }
}
War es hilfreich?

Lösung

Haben Sie im Selen Issue # 27 vor kurzem (Kommentar # 46) ? Es hat einige Patches angebracht, die Unterstützung für Alarm und bestätigen bietet?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top