接上篇:https://developer.aliyun.com/article/1228064?spm=a2c6h.13148508.setting.18.4a864f0e4FO91p
五、 参数匹配器
在执行单元测试时,有时候并不关心传入的参数的值,可以使用参数匹配器。
1. 参数匹配器(any)
Mockito提供“Mockito.anyInt()”、“Mockito.anyString”、“Mockito.any(Class clazz)”等来表示任意值。
2. 参数匹配器(eq)
当我们使用参数匹配器时,所有参数都应使用匹配器。如果要为某一参数指定特定值时,就需要使用“Mockito.eq()”方法。
3. 附加匹配器
Mockito的AdditionalMatchers类提供了一些很少使用的参数匹配器,我们可以进行参数大于(gt)、小于(lt)、大于等于(geq)、小于等于(leq)等比较操作,也可以进行参数与(and)、或(or)、非(not)等逻辑计算等。
六、 verify语句
验证是确认在模拟过程中,被测试方法是否已按预期方式与其任何依赖方法进行了交互。
格式
• Mockito.verify(mockObject[,times(int)]).someMethod(somgArgs);
用途
• 用于模拟对象方法,直接返回期望的值、异常、应答,或调用真实的方法,无需执行原始方法。
案例
1. 验证调用方法
2. 验证调用次数
除times外,Mockito还支持atLeastOnce、atLeast、only、atMostOnce、atMost等次数验证器。
3. 验证调用顺序
4. 验证调用参数
5. 确保验证完毕
Mockito提供“Mockito.verifyNoMoreInteractions”方法,在所有验证方法之后可以使用此方法,以确保所有调用都得到验证。如果模拟对象上存在任何未验证的调用,将会抛出“NoInteractionsWanted”异常。
备注
“Mockito.verifyZeroInteractions”方法与“Mockito.verifyNoMoreInteractions”方法相同,但是目前已经被废弃。
6. 验证静态方法
Mockito没有静态方法的验证方法,但是PowerMock提供这方面的支持。
接下篇:https://developer.aliyun.com/article/1228061?groupCode=java