一文浅谈Mockito使用 | 京东云技术团队
💡
原文中文,约16800字,阅读约需40分钟。
📝
内容提要
介绍Mockito框架的进阶用法,包括stub部分mock、spy部分mock、参数捕获器、mock对象的返回值策略等,以及如何使用Mockito进行单元测试和解决依赖类未实现的情况。
🎯
关键要点
- Mockito是一个轻量级的mocking测试框架。
- mock对象用于替代真实对象进行测试。
- stub是为mock对象的方法指定返回值或抛出异常。
- verify用于验证mock对象的方法调用情况。
- mock对象会记住所有交互,可以选择性验证感兴趣的交互。
- mock函数默认返回null或基本类型的包装对象。
- Mockito无法对static和final方法进行when(…).thenReturn(…)操作。
- 参数匹配器使验证和测试桩更灵活,支持自定义参数匹配器。
- InOrder对象用于验证多个方法的执行顺序。
- verifyNoMoreInteractions()用于验证是否存在冗余调用,但不建议在每个测试中使用。
- 可以使用@Mock和@InjectMocks注解简化mock对象的创建和注入。
- spy对象可以监控真实对象的调用,需谨慎使用。
- 部分mock允许调用真实对象的方法,需注意stub的使用。
- ArgumentCaptor用于捕获方法参数进行验证。
- 可以指定mock对象的返回值策略,适用于遗留系统。
- 通过mock测试可以解耦待测类与依赖类,便于单元测试。
➡️