例如,我有處理程序:如何模擬@InjectMocks類的方法?
@Component
public class MyHandler {
@AutoWired
private MyDependency myDependency;
public int someMethod() {
...
return anotherMethod();
}
public int anotherMethod() {...}
}
,以測試它,我想寫的東西是這樣的:
@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);
}
}
但它實際上調用anotherMethod()
每當我試圖嘲笑它。我應該怎麼處理myHandler
來嘲笑它的方法?
如果你想測試MyHandler的,你不應該嘲笑它自己的方法(因爲你想測試你的處理程序,而不是模擬)。是否有一個特定的原因,你需要這樣做? – Nitek