2 Stimmen

TestNg, Anmerkung "beforeTestMethod" und Override

Für meine Tests verwende ich eine Basisklasse MyTestBase Definition einer Methode setup() die einige grundlegende Vorbereitungen trifft:

public class MyTestBase {
    @Configuration( beforeTestMethod=true )
    protected void setup() {
        // do base preparations
    }
}

Jetzt habe ich einige spezifischere Testklassen, die ihre eigenen Vorbereitungen treffen müssen. Es gibt verschiedene Möglichkeiten, dies zu implementieren.

Ich könnte Folgendes gebrauchen @Override :

public class MySpecialTestBase extends MyTestBase {
    @Override
    protected void setup() {
        super.setup();
        // do additional preparations
    }
}

...oder ich könnte eine andere Einrichtungsmethode verwenden:

public class MySpecialTestBase extends MyTestBase {
    @Configuration( beforeTestMethod=true )
    protected void setupSpecial() {
        // do additional preparations
    }
}

Gibt es einen bevorzugten Weg, dies zu implementieren?

5voto

Rorick Punkte 8697

Ich würde die Verwendung von @Configuration Bemerkung. @Override y super sind empfindlicher. Sie können vergessen zu rufen super.setup() oder an der falschen Stelle anrufen. In der Zwischenzeit können Sie mit einer separaten Methode mit @Configuration ermöglicht es Ihnen, bei Bedarf eine geeignetere Bezeichnung für die Einrichtungsmethode des Kindes zu wählen, und Sie erhalten die von TestNG garantierte Einrichtungsreihenfolge (erst Elternteil, dann Kind).

Zwei weitere Punkte:

  1. Ich würde die Eltern einrichten final um ein versehentliches Überschreiben zu verhindern.
  2. Ich würde die @BeforeMethod Anmerkungen. Sie sind seit TestNG 5.0 verfügbar. Für ältere Versionen sind Sie natürlich gezwungen, die @Configuration .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X