单元测试中Mockito的verify方法的使用

        在写单元测试的过程中,通常需要验证某些方法是否按期执行。这时就可以使用verify方法来验证某个外部方法是否被调用,调用次数以及被调用时的参数甚至验证外部方法的调用顺序。

        verify的基本用法,假设我们有一个名为CommonService的类,在该类中有一个findConfig方法,用户获取系统配置相关信息。这时我们想要验证findConfig方法是否被调用过,并且调用的次数为1次。下方为示例:

        //首先要创建一个mock对象,可以通过mock方法或使用@Mock注解,下方为mock方法创建

        CommonService commonService = Mockito.mock(CommonService.class);

        //随后调用findConfig方法

        commonService.findConfig("a”);

        //使用verify方法验证findConfig方法是否被调用过,且调用次数为1

        Mockito.verify(CommonService,Mockito.times(1)).findConfig(“a”);

        在上面的例子中,我们首先创建了一个CommonService的mock对象,然后调用了findConfig方法,并且传入了参数字符串a。最后使用verify方法验证findConfig是否被调用过,且调用次数为1。还有一点值得注意,该方法不仅会验证调用过和调用次数,也会验证传入的参数是否为字符串a。

        验证方法调用次数的其他方法示例:

        //验证方法是否至少被调用了一次

        Mockito.verify(CommonService,Mockito.atLeastOnce()).findConfig(“a”);

        //验证方法是否至多被调用了两次

        Mockito.verify(CommonService,Mockito.atMost(2)).findConfig(“a”);

        ............

        除了验证方法的调用次数以及参数,verify方法还可以用来验证方法的调用顺序。假设CommonService中还有一个findAdminUser方法,我们要验证findConfig方法在findAdminUser方法之前被调用。下方为示例:

        //首先要创建一个mock对象

        CommonService commonService = Mockito.mock(CommonService.class);

        //随后调用两个方法

        commonService.findConfig("a”);

        commonService.findAdminUser("b”);

        //验证方法的调用顺序

        InOrder inOrder = Mockito.inOrder(commonService);

        inOrder.verify(commonService)..findConfig("a”);

        inOrder.verify(commonService)..findAdminUser("b”);

        在上面的例子中,我们首先调用了findConfig,然后调用了findAdminUser方法。随后我们使用Mockito的inOrder方法创建了一个InOrder对象,并使用它来验证findConfig方法findAdminUser方法之前被调用。

        合理使用verify方法,可以编写出高质量的单元测试代码,提高代码的可靠性与可维护性。

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值