Ich benutze Mockito, um eine Methode in der gleichen Klasse zu verspotten, für die ich Test schreibe. Ich habe andere Antworten auf SO (Mocking method in the same class) gesehen, aber wahrscheinlich missverstanden ich sie, da ich auf Probleme stoße.Mock Methoden in der gleichen Klasse
class Temp() {
public boolean methodA(String param) {
try {
if(methodB(param))
return true;
return false;
} catch (Exception e) {
e.printStackTrace();
}
}
}
Meine Testmethode:
@Test
public void testMethodA() {
Temp temp = new Temp();
Temp spyTemp = Mockito.spy(temp);
Mockito.doReturn(true).when(spyTemp).methodB(Mockito.any());
boolean status = temp.methodA("XYZ");
Assert.assertEquals(true, status);
}
ich die expection jedoch erhalten ausgedruckt, weil Definition von methodeB ausgeführt wird. Mein Verständnis ist die Definition der MethodeB würde mit spyTemp verspottet werden. Dies scheint jedoch nicht der Fall zu sein.
Kann mir bitte jemand erklären, wo ich falsch liege?