Laufen zwei gleiche tests mit verschiedenen Argumenten
Ich habe einen test mit 15-20 verschiedene Testfälle, ich will führen Sie den gleichen test mit zweimal mit zwei verschiedenen Parameter sollen übergeben werden die Tests BeforeClass Methode, zum Beispiel:
public class TestOne {
private static ClassToTest classToTest;
@BeforeClass
public static void setUp() throws Exception {
classToTest = new ClassToTest("Argument1", "Argument2");
}
@Test
public void testOne() {
........roughly 15 - 20 tests here
}
public class TestTwo {
private static ClassToTest classToTest;
@BeforeClass
public static void setUp() throws Exception {
classToTest = new ClassToTest("Argument3", "Argument4");
}
@Test
public void testOne() {
........roughly 15 - 20 tests here, same as in TestOne
}
Wie man sehen kann der einzige Unterschied zwischen diesen beiden Prüfungen ist in der setup-Methode, die Pässe unterschiedliche Werte an den Konstruktor der ClassToTest. Ich will nicht zu replizieren, die test-Methoden in beiden Klassen, aber würde bevorzugen entweder Vererbung oder eine andere intelligente Art und Weise, dies zu erreichen in einer Klasse.
- Die einfache Vererbung, sollte aber funktionieren. Haben Sie versucht, bewegt ClassToTest und testOne (), um eine baseclass?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies scheint wie eine perfekte Anwendungsfall für JUnit4 ist
@Parameters
; siehe https://blogs.oracle.com/jacobc/entry/parameterized_unit_tests_with_junit oder http://www.mkyong.com/unittest/junit-4-tutorial-6-parameterized-test/ . Das heißt, Sie müssen bewegen Sie die Initialisierung über die setUp-Methode einen Konstruktor für die test-Klasse.Für was es Wert ist, hier ist, wie Sie es tun würde, mit TestNG:
Dank an alle für Eure schnellen Antworten. Dies ist, wie ich es Tat schließlich
Base ist eine abstrakte Klasse, die alle tests und FirstTest und SecondTest erstellen Sie Ihre eigenen Objekte mit verschiedenen Parametern und übergeben es an die abstrakte Klasse verwendet werden.
Als pro für die Dokumentation (http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html):
Wie wäre es damit:
BEARBEITEN:
Oder halten die Methode count-down:
classToTest1
undclassToTest2
in jeder test-Methode, wenn Sie möchten, halten Sie die Methode count down, und die Liste könnte dann definiert werden, wenn insetUp
.