在我的理解中,代码测试是测试结果是否正确,如计算器,我需要编写一个测试用例来验证1 + 1的结果是否为2.
但是我已经阅读了很多关于验证方法调用次数的测试用例.我很困惑.最好的例子就是我在Spring in Action中看到的:
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();
}
}
Run Code Online (Sandbox Code Playgroud)
我真的不知道为什么他们需要验证embark()
函数被调用一次.难道你不认为embark()
在调用后肯定会被调用embarkOnQuest()
吗?或者会发生一些错误,我会在日志中看到错误消息,显示错误行号,可以帮助我快速找到错误的代码.
那么如上所述验证的重点是什么?