testable-mock/docs/zh-cn/doc/comparation.md
2020-12-14 19:13:12 +08:00

1.3 KiB
Raw Blame History

主流Mock工具对比

TestableMock目前主要的Mock工具主要有MockitoPowerMockJMockit,基本差异如下:

工具 原理 最小Mock单元 对被Mock方法的限制 上手难度 IDE支持
Mockito 动态代理 不能Mock私有/静态和构造方法 较容易 很好
PowerMock 自定义类加载器 任何方法皆可 较繁琐 较好
JMockit 运行时字节码修改 不能Mock构造方法(new操作符) 较繁琐 一般
TestableMock 运行时字节码修改 方法 任何方法皆可 很容易 一般

相比之下,TestabledMock的功能与PowerMock基本平齐,且极易上手,只需掌握@MockMethod注解就可以完成绝大多数任务。

当前TestableMock的主要不足在于编写Mock方法时IDE尚无法即时提示方法参数是否正确匹配。若发现匹配效果不符合预期需要通过自助问题排查文档提供的方法在运行期进行校验。这个功能未来需要通过扩展主流IDE插件来提供。