单元测试利器——手把手教你使用Mockito

💡 原文中文,约17000字,阅读约需41分钟。
📝

内容提要

Mockito是一个单元测试工具,可以模拟对象、打桩、行为验证、设置超时时间、自定义参数匹配器、验证执行顺序、使用spy对象处理遗留代码、stub语法提供部分模拟方法,可以完全模拟或部分模拟,但不会为真实对象代理函数调用。

🎯

关键要点

  • Mockito是一个单元测试工具,可以模拟对象和行为验证。

  • 开发人员通常不喜欢写单元测试,主要是因为依赖问题。

  • Mockito可以帮助解决依赖问题,简化单元测试的编写。

  • Mockito的基本功能包括创建mock对象、打桩、行为验证等。

  • mock对象是用来替代真实对象的虚拟对象。

  • 打桩是为mock对象的方法指定返回值或抛出异常。

  • 行为验证用于验证指定方法的调用情况,如调用次数等。

  • Mockito支持设置超时时间和自定义参数匹配器。

  • 可以使用spy对象处理遗留代码,spy对象会调用真实对象的方法。

  • Mockito支持完全模拟和部分模拟,部分模拟基于真实对象。

  • 参数匹配器使得验证和测试桩更加灵活。

  • 可以验证方法调用的执行顺序,使用InOrder对象进行顺序验证。

  • verifyNoMoreInteractions()用于验证是否存在冗余调用,但不建议在每个测试中使用。

  • MockitoAnnotations.initMocks(this)需要在测试函数运行前调用。

  • 可以使用@Mock和@InjectMocks注解简化mock对象的创建和注入。

  • ArgumentCaptor用于捕获方法参数进行验证。

  • Mockito支持自定义返回值策略,适用于遗留系统的测试。

  • 通过mock对象可以解耦待测类与依赖类,方便单元测试。

➡️

继续阅读