一文浅谈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测试可以解耦待测类与依赖类,便于单元测试。
🏷️