1.返回指定值
2.void返回值指定插桩
3.插桩的两种方式
when(obj.someMethod()).thenXxx():其中obj可以是mock对象
doXxx().wien(obj).someMethod():其中obj可以是mock/spy对象
spy对象在没有插桩时是调用真实方法的,写在when中会导致先执行一次原方法,达不到mock的目的,
需使用doXxx().when(obj).someMethod()
4.抛异常
5.多次插桩
6.实现指定插桩逻辑
7.执行真正的原始方法
8.verify的使用
9@lnjectMocks注解的使用
●作用:若@InjectMocks声明的变量需要用到mock/spy对象,mockito会自动使用当前类里的mock或spy成员进行按类型或名字的注入
●原理:构造器注入、setter注入、字段反射注入
10. 断言工具
hamcrest:junit4中引入的第三方断言库junit5中被移出,从1.3版本后,坐标由org.hamcrest:hamcrest-core变为org.hamcrest:hamcrest
assertJ:常用的断言库
junit4原生断言
junit5原生断言
实例代码测试
要测试的方法
单元测试用例
springboot环境下配置
生成的对象受spring管理
@MockBean
●类似@Mock
●用于通过类型或名字替换spring容器中已经存在的bean,从而达到对这些bean进行mock的目的
@SpyBean
●作用类似@Spy
●用于通过类型或名字包装spring容器中已经存在的bean,当需要mock被测试类的某些方法时可以使用