Mam dwie klasy testowe, MyFirstTest i MySecondTest. Uruchamianie każdego niezależnie działa dobrze. Kiedy uruchamiam oba (w eclipse wybierz folder testowy, który zawiera te pliki, kliknij prawym przyciskiem, uruchom jako junit), MySecondTest nie powiedzie się, ponieważ MyClass wciąż jest wyśmiewany, gdy uruchamia swoje "testy. MyFirstTest wymaga kpiny z MyClass. MySecondTest wymaga, aby MyClass nie był kpiony. Myślałem, że tearDownMocks ma "zdjąć" klasy.MyClass pozostaje wyśmiewany między dwoma testami
public class MyFirstTest {
@Before
public void setUp() throws Exception {
Mockit.setUpMocks(MockMyClass.class);
}
@After
public void tearDown() throws Exception {
Mockit.tearDownMocks(MockMyClass.class);
}
@AfterClass
public static void tearDownAfterClass() throws Exception {
Mockit.tearDownMocks(MockMyClass.class);
}
@MockClass(realClass = MyClass.class, stubs = "<clinit>")
public static class MockMyClass {
...
public class MySecondTest {
"Cóż, stwierdziłem, że dodanie Mockit.tearDownMocks(); do klas MySecondTest metoda setUp (która jest opatrzona adnotacją Before), resetuje makiety, aby nie używać makiety z poprzedniej klasy. Nie wiesz, dlaczego wywołania metody Mockit.tearDownMocks (MockMyClass.class) z metod oznaczonych klauzulą After i AfterClass polegają ... " – user1346730