Mam klasę testową (opartą na TestNG), w której używam obiektu Mockito.verify
dla obiektu szpiegowskiego.Resetowanie szpiega Mockito
to działa:
public class Program {
@Spy
private TestObject testObject;
@Test
public void test1() {
testObject.makeSth();
verify(testObject, only()).someMethodNeedToBeChecked();
}
}
ale tutaj:
public class Program {
@Spy
private TestObject testObject;
@Test
public void test1() {
testObject.makeSth();
verify(testObject, only()).someMethodNeedToBeChecked();
}
@Test
public void test2() {
// Some different scenario
testObject.makeSth();
verify(testObject, only()).someMethodNeedToBeChecked();
...
}
}
otrzymuję wyjątek Mokito że mam więcej niż jeden wywołanie someMethodNeedToBeChecked
metody. Oczywiście próbowałem dodać Mockito.reset(testObject)
, ale nie pomogło mi to wcale.
Jak mogę zresetować obiekt szpiegowski, jeśli muszę zweryfikować tę samą metodę w kilku testach?
zadałem podobne pytanie na co http://programmers.stackexchange.com/questions/188299/is-this-an- Odpowiednio wykorzystana metoda resetowania mockitos. Tylko FYI, chociaż dotyczyło to szyderstwa, a nie szpiega. –
Gdzie próbowałeś dodać wywołanie "reset"? Może edytować swój kod, aby pokazać swoją próbę, ale skomentował? –
Załączam tylko prototypowy przykład, reset, który próbowałem wykonać w @BeforeMethod \ @BeforeClass, taki sam z @After, nawet przed weryfikacją - to nie zadziałało. Jak rozumiem jest to problem tylko ze szpiegami i resetem jest tylko dla pozorowanych obiektów. –