一,背景
单测试基本上是开发逃不过的一个工作内容,虽然往往因为过于无聊,或者过于麻烦,而停止于项目的迭代之中,不了了之了。其实不是开发们懒,而是上头要求的测试覆盖率高,但是又没有好用的工具,导致工作积压,最后只能舍弃掉这部分。
最近发现Spring+junit+mockito很好用,特别是对于DDD架构的项目,可以针对特定的代码层做单测试,贼好用。
二,环境准备
1,首先是在spring环境下,引入mockito和junit
2,使用mockito
1,使用 `@ExtendWith(MockitoExtension.class)` 注解让 junit 使用 Mockito 环境启动单测试,这样 `@Mock` 和 `InjectMocks` 注解才会生效。
2,使用 `@Mock` 注解来 mock 一个对象,方便后续控制这个对象的行为。
3,使用 `@InjectMocks` 注解来标注一个对象(注意,对象的类型是具体的实现类,而不是接口),junit 会自动将标有 `@Mock` 注解的对象按需注入其中。
3,覆盖率检测
三,实战
1,新建测试类
idea中在类里ctrl+shift+T


注意:只有public方法才能生成单测试方法,也只有public方法才需要单测试。
2,添加注解和注入业务类里依赖的Bean
原业务类:

单测试类:
将原业务类依赖的mapper注入到单测试类。 将自己的实现类也注入到单测试类。 下面的例子中还把BeanUtil这个静态的工具类先mock了,因为后面会用到,各种工具类都可以这样来mock。

3,根据原业务类方法里的逻辑写单测试用例

4,redis等中间件都可以mock

5,捕获自定义异常

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/5156.html