使用 Mockito 验证函数调用的次数有什么意义?
2022-09-03 01:32:32
在我的理解中,代码测试就是测试结果是否正确,就像计算器一样,我需要写一个测试用例来验证1+1的结果是否为2。
但是我读过很多关于验证方法调用次数的测试用例。我对此感到非常困惑。最好的例子是我刚刚在《春天在行动》中看到的:
public class BraveKnight implements Knight {
private Quest quest;
public BraveKnight(Quest quest) {
this.quest = quest;
}
public void embarkOnQuest() {
quest.embark();
}
}
public class BraveKnightTest {
@Test
public void knightShouldEmbarkOnQuest() {
Quest mockQuest = mock(Quest.class);
BraveKnight knight = new BraveKnight(mockQuest);
knight.embarkOnQuest();
verify(mockQuest, times(1)).embark();
}
}
我真的不知道为什么他们需要验证函数是否被调用一次。难道你不认为在被调用后肯定会被调用吗?或者会发生一些错误,我会注意到日志中的错误消息,这些消息显示错误行号,可以帮助我快速找到错误的代码。embark()
embark()
embarkOnQuest()
那么像上面这样验证有什么意义呢?