Zum Beispiel habe ich Handler:Wie kann ich Methoden der @InjectMocks-Klasse verspotten?
@Component
public class MyHandler {
@AutoWired
private MyDependency myDependency;
public int someMethod() {
...
return anotherMethod();
}
public int anotherMethod() {...}
}
, um es zu testen ich so etwas schreiben wollen:
@RunWith(MockitoJUnitRunner.class}
class MyHandlerTest {
@InjectMocks
private MyHandler myHandler;
@Mock
private MyDependency myDependency;
@Test
public void testSomeMethod() {
when(myHandler.anotherMethod()).thenReturn(1);
assertEquals(myHandler.someMethod() == 1);
}
}
Aber es ruft tatsächlich anotherMethod()
wenn ich versuche, es zu verspotten. Was soll ich mit myHandler
tun, um seine Methoden zu verspotten?
Wenn Sie MyHandler testen wollen, shouldn Sie Mach keine eigenen Methoden vor (da du deinen Handler testen willst, nicht den Mock). Gibt es einen bestimmten Grund, warum Sie dies tun müssen? – Nitek