Czy jest możliwe uruchomienie metody JUnit @Test
w klasie, która ma metodę opatrzoną komentarzem @Before
, ale zignorowanie metody @Before
tylko dla tego testu?Uruchom Junit @ Test ignoruje @ Przed/@ Po
Edytuj: Jestem zainteresowany, czy JUnit obsługuje tę funkcję, a nie obejścia. Jestem świadomy obejścia, jak przeniesienie testu (ów) w innej klasie lub usunięcie adnotacji i ręczne wywołanie setUp()
w każdej metodzie testu.
Załóżmy, że w klasie jest 30 testów, a dla 29 z nich @Before
naprawdę upraszcza inicjowanie testowania, ale dla jednego (lub więcej niż jednego) z nich jest bezużyteczny/to komplikuje rzeczy.
public class MyTestClass {
@Before
public void setUp() {
//setup logic
}
@Test
public void test1() {
//[...]
}
@Test
public void test2() {
//[...]
}
//more tests here
@Test(ignoreBefore = true, ignoreAfter = true //false by default)
//something equivalent to this
public void test20() {
//[...]
}
}
Czy możesz przenieść 'test20' w oddzielnej klasie bez adnotacji' @ Before' i '@ After'? – user1516873
@ user1516873 Technicznie tak, ale chciałbym zachować wszystkie testy dla klasy w jednej klasie testowej. Gdy klasa została zaprojektowana/rozwinięta, nie uznano testów i refaktoryzacja nie jest rozwiązaniem. Ponadto, definicja testów jednostkowych mówi, że są one niezależne i mogą być uruchamiane osobno. – m3th0dman