单元测试利器——手把手教你使用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对象可以解耦待测类与依赖类,方便单元测试。
➡️