《Java单元测试实战》——编写方法:Java编程技巧之单元测试用例编写流程(10) https://developer.aliyun.com/article/1232409?groupCode=java
八、 验证依赖方法
在单元测试中,验证是确认模拟的依赖方法是否按照预期被调用或未调用的过程。Mockito提供了许多方法来验证依赖方法调用,给我们编写单元测试用例带来了很大的帮助。
1. 根据参数验证方法调用
1) 验证无参数方法调用
2) 验证指定参数方法调用
3) 验证匹配参数方法调用
在验证依赖方法时,需要自定义匹配参数值,可以使用Mockito参数匹配器的that方法。Mockito提供了booleanThat、intThat、longThat、doubleThat、argThat等方法来进行匹配值。
4)验证任意参数方法调用
在验证依赖方法时,有时候并不关心传入参数的具体值,可以使用Mockito参数匹配器的any方法。Mockito提供了anyInt、anyLong、anyString、anyList、anySet、anyMap、any(Class clazz)等方法来表示任意值。
5)验证可空参数方法调用
Mockito参数匹配器的any具体方法,并不能够匹配null对象。而Mockito提供一个nullable方法,可以匹配包含null对象的任意对象。此外,Mockito.any()方法也可以用来匹配可空参数。
6)验证必空参数方法调用
同样,如果要匹配null对象,可以使用isNull方法,或使用eq(null)。
7) 验证不同参数方法调用
Mockito支持按不同的参数分别验证同一方法。
8)验证可变参数方法调用
对于一些变长度参数方法,可以按实际参数个数进行验证:
也可以用Mockito.any()进行通用验证:
2.验证方法调用次数
1)验证方法默认调用1次
2)验证方法从不调用
3)验证方法调用n次
4) 验证方法调用至少1次
5)验证方法调用至少n次
6)验证方法调用最多1次
7) 验证方法调用最多n次
8) 验证方法调用指定n次
Mockito允许按顺序进行验证方法调用,未被验证到的方法调用将不会被标记为已验证。
9) 验证对象及其方法调用1次
用于验证对象及其方法调用1次,如果该对象还有别的方法被调用或者该方法调用了多次,都将导致验证方法调用失败。
相当于:
《Java单元测试实战》——编写方法:Java编程技巧之单元测试用例编写流程(12) https://developer.aliyun.com/article/1232407?groupCode=java