主要观点:经过多年无望的等待,mockito 2.x 已发布以解决开发者在测试中遇到的许多问题,但从 mockito 1.x 迁移到 2.x 可能是痛苦的任务,因为 2.x 不尊重 1.x 的旧行为,且与 powermock 的某些版本存在集成问题。文中提供了 10 个在迁移过程中可能遇到的重要挑战及应对技巧。
关键信息:
- mockito 2.x 的特点,如可模拟 final 类和方法、支持 java 8、从 cglib 迁移到 bytebuddy。
- 迁移过程中可能遇到的问题,如大量测试失败(空指针异常、编译错误等)、与 powermock 集成问题、mockito 白盒功能移除等。
- 应对技巧,如使用正确的 powermock mockito api 扩展
powermock-api-mockito2
、避免使用不兼容的 mockito 和 powermock 版本、用 powermock 的白盒替代 mockito 2.x 的白盒(若初始方案不行则自己编写)、使用正确的匹配器(如org.mockito.argumentmatchers
)、将 anyint()替换为 anylong()、anystring()不再匹配 null 等、mockito 2.7.1 与 powermock 的兼容性问题及解决办法、原始测试异常在 mockito 2.x 与 powermock 中被包装为 runtimeexceptionproxy 需修改测试注解、尝试移除 powermock 依赖仅依赖 mockito 2.x、审查旧测试以提高可维护性。
重要细节:文中详细介绍了每个技巧的具体情况及相关代码示例,如不同版本的兼容性问题、具体的异常信息等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。