我有以下服务等级:
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
需要一个方法返回一些东西。