verweis Spion zu mock methods in same classein Verfahren innerhalb einer Klasse Mocking mit Mockito
class Temp() {
public boolean methodA(String param) {
try {
if(methodB(param))
return true;
return false;
} catch (Exception e) {
e.printStackTrace();
}
}
}
Die Testklasse
@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);
}
Wenn die wirkliche Klasse temp methodA Aufruf sollte verspottet Methode B Wert zurück. Also wieder wahr. Warum ist das falsch? Ich stoße auf das gleiche Problem. Ich möchte den Test auf die reale Klasse und nicht für Mock-Objekt wie von der Antwort vorgeschlagen ausführen. Ich möchte die Klasse methodA und erwarten, dass die verspottete Objekt spyTemp methodeB Wert laufen, wenn es
Bitte post a [mcve]. Es ist 'methodB (param)' in der verknüpften Frage nicht 'methodB()' –
Ich verstehe nicht, warum Sie die verknüpfte Frage erneut stellen müssen. Die Antwort dort beantwortet deine Frage hier schon. – Tom
jetzt muss ich wissen, ob methodB öffentlich ist oder nicht. wenn es privat ist, musst du damit umgehen, als ob der Code in Methode A geschrieben wäre und wenn es öffentlich ist, könntest du dich darüber lustig machen. – LenglBoy