小编sco*_*ott的帖子

验证使用Mockito调用函数的次数有什么意义?

在我的理解中,代码测试是测试结果是否正确,如计算器,我需要编写一个测试用例来验证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()吗?或者会发生一些错误,我会在日志中看到错误消息,显示错误行号,可以帮助我快速找到错误的代码.

那么如上所述验证的重点是什么?

java testing unit-testing mockito

15
推荐指数
3
解决办法
764
查看次数

标签 统计

java ×1

mockito ×1

testing ×1

unit-testing ×1