次のサービスクラスがあります。
class Person() {
AgeDAO dao;
Speaker speaker;
public method checkSpeak( List<Jon> list) {
List<Integer> ages = dao.getAge(list);
if ( ages != null && !ages.isEmpty() ) {
speaker.speak(list);
}
}
}
テストクラス:
@Test
class MyTest {
void speakTest() {
Person p = new Person();
Speaker speaker = mock(Speaker.class);
p.speaker = speaker;
AgeDAO dao = mock(AgeDAO.class);
p.dao = dao;
List<Jon> list = createJonList();
List<Integer> ages = createAgesList();
when(dao.getAge(anyList())).thenReturn(ages);
p.checkSpeak(ages);
verify(p.speaker).speak(anyList()); // This is not called/invoked.
}
}
speak
呼び出されていることを確認したいだけです。メソッドをモックする必要がありますか?メソッドをモックする必要がある場合、何も返さないメソッドをモックするにはどうすればよいですか。when
何かを返すメソッドが必要です。