TestMock简介
换种思路写Mock,让单元测试更简单
无需初始化,不挑服务框架,甭管要换的是私有方法、静态方法、构造方法还是其他任何类的任何方法,也甭管要还的对象是怎么创建的。写好Mock定义,加个@MockMethod注解,一切统统搞定
好吧,上面这段是作者写的,因工作需要没有使用其他Mock框架而使用阿里的,总的来说很简单,但在一开始使用的过程中有坑,而且网上现在资料很少,作者更新的版本也很快,很难解决问题,在这里我也总结一下遇到的一些问题以及使用,感觉不错的话点赞一下,有问题也希望大家及时指出
Github:https://github.com/alibaba/testable-mock
文档:https://alibaba.github.io/testable-mock/
国能文档镜像:http://freyrlin.gitee.io/testable-mock/
框架愿景
单元测试中的Mock方法,通常是为了绕开那些依赖外部资源或无关功能的方法调用,使得测试重点能够集中在需要验证和保障的代码逻辑上。
在定义Mock方法时,开发者真正关心的只有一件事:“这个调用,在测试的时候要换成那个假的Mock方法”。
当下主流的Mock框架在实现Mock功能时,需要开发者操心的事情实在太多:Mock框架如何初始化、与所用的服务框架是否兼容、要被Mock的方法是不是私有的、是不是静态的、被Mock对象是new出来的还是注入的、怎样把被测对象送回被测类里…这些非关键的额外工作极大分散了使用Mock工具应有的乐趣。
快速使用
Maven项目中使用
pom.xml文件中,增加testable-all依赖和maven-surefire-plugin配置
Step1:建议添加一个表示TestableMock版本的property,便于统一管理
<properties>
<testable.version>0.6.5</testable.version>
</properties>
Step2:dependencies列表添加TestableMock依赖
<dependencies>
<dependency>
<groupId>com.alibaba.testable</