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

继续阅读