Chciałbym napisać, że po prostu klasę BaseTest
stanowi "uniwersalny setUp()
metodę" dla wszystkich podklas rozciągających:JUnit Test baza Ustawianie automatyczne
public class BaseTest {
@Before
public void setUp() {
System.out.println("setUp() was called!");
// Doesn't really matter what this is doing...
EnvironmentConfigurator.configureEnvForTesting();
}
}
wówczas:
public class WidgetTest extends BaseTest {
@Test
public void test1() {
fail();
}
@Test
public void test2() {
fail();
}
}
Tak idealnie, za każdym razem metoda podklasa odnotowany przez @Test
jest wykonywany, JUnit najpierw wywołać metodę BaseTest#setUp()
, który ma cokolwiek (naprawdę nie ma znaczenia). Być może jego zresetowaniu pewne stany próbne do wartości początkowej, tak aby każdy test można uruchomić na „czystym kontem”, itp Ponownie, nie ma znaczenia.
Niestety kiedy uruchomić ten kod, tylko widzę setUp() was called!
drukowania na ekranie raz, więc nie jest wyraźnie BaseTest
„zawijania” moi @Test
metody tak, jak chcę. Czy jest jakiś sposób, aby to osiągnąć? Z góry dziękuję!
Dzięki @Bedwyr Humphreys (+1) - zmieniłem 'fail()' oświadczenia do średnikami (aby zmusić metod testowych przejść) i tak, rodzic 'setup()' Metoda nazwano dwukrotnie. Musi więc istnieć coś na temat korzystania z tej konfiguracji w połączeniu z uszkodzonymi przypadkami testowymi, które powodują, że metoda 'setUp()' może być wywołana tylko raz. Dzięki jeszcze raz. – IAmYourFaja
Pobiegłem go fail() (w Eclipse) i nadal nazywano dwukrotnie – blank
Dziwne ... dobrze nie ma znaczenia, usuwając 'fail()' s działa więc jestem dobry, aby przejść. Dzięki jeszcze raz. – IAmYourFaja