Ho due classi di test, MyFirstTest e MySecondTest. L'esecuzione di ciascuno indipendentemente funziona bene. Quando eseguo entrambi (in eclissi seleziona la cartella di test che contiene questi file, fai clic con il pulsante destro del mouse, esegui come junit), MySecondTest fallisce perché MyClass è ancora mocked quando esegue i suoi 'test'. MyFirstTest richiede che MyClass venga deriso. MySecondTest richiede che MyClass non venga deriso. Pensavo che i tearDownMocks supponessero di "sdrammatizzare" le classi.MyClass rimane beffato tra due test
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 {
'Bene ho trovato che aggiungendo Mockit.tearDownMocks(); al metodo setUp delle classi MySecondTest (che è annotato con Before), reimposta i mock in modo che non utilizzi il mock della classe precedente. Non sono sicuro del motivo per cui le invocazioni di Mockit.tearDownMocks (MockMyClass.class) all'interno dei metodi annotati con After e AfterClass sono in calo ... ' – user1346730