
1.解决的问题
我们在写单元测试时,总会遇到类似这些问题:
1. 构造的入参,对于极值、异常边界场景不好复现,相关的逻辑测不到,只能依靠测试环境或预发跑,运气不好可能要改好几次代码重启机器验证,费时费力;
2. 依赖别人接口,可能需要别人协助测试环境数据库插数才能跑通;
3. 依赖的别人的接口还没有开发完,为了不影响提测,如何完成单元测试?
4. 编写的单元测试依赖测试数据库的数据,每次跑都要数据库改数?
5. 对service层加了逻辑,跑单元测试本地验证的时候,由于种种原因,本地环境跑不起来,折腾半天跑起来验证完了,下次开发需求又遇到了另一个问题本地环境启动报错???
6. 我就想dubug到某一行代码,但是逻辑复杂,东拼西凑的参数就是走不到,自己看代码逻辑还要去问别人接口的返回值逻辑??(未完待续……)
引入Mockito和PowerMock使得编写单元测试更轻松,更省时,更省力。
2.如何解决问题
2.1 使用mock的意义

使我们的单测满足AIR原则:Automatic(自动化)、Independent(独立性)、Repeatable(可重复)
简单说就是无论谁的本地环境,无论判断条件多么苛刻,无论本地数据库的测试数据被谁删了改了,无论别人接口的返回值逻辑多复杂,无论自己代码逻辑多

本文详细介绍了如何使用Mockito和PowerMock解决单元测试中的难题,包括Mock的意义、两者区别及最佳实践。通过引入Mockito和PowerMock,可以实现独立、可重复的自动化单元测试,有效应对静态方法、私有方法的测试挑战。文章还提供了SpringBoot项目下的使用示例和常见问题解决方案。
&spm=1001.2101.3001.5002&articleId=106931469&d=1&t=3&u=2298427f92df438e87f56452a92beb75)
4139

被折叠的 条评论
为什么被折叠?



