单元测试中的Mock方法,通常是为了绕开那些依赖外部资源或无关功能的方法调用,使得测试重点能够集中在需要验证和保障的代码逻辑上。
在定义Mock方法时,开发者真正关心的只有一件事:"这个调用,在测试的时候要换成那个假的Mock方法"。
当下主流的Mock框架在实现Mock功能时,需要开发者操心的事情实在太多:Mock框架如何初始化、与所用的服务框架是否兼容、要被Mock的方法是不是私有的、是不是静态的、被Mock对象是new出来的还是注入的、怎样把被测对象送回被测类里...这些非关键的额外工作极大分散了使用Mock工具应有的乐趣。
于是,我们开发了TestableMock
,一款特立独行的轻量Mock工具。
无需初始化,不挑服务框架,甭管要换的是私有方法、静态方法、构造方法还是其他任何类的任何方法,也甭管要换的对象是怎么创建的。写好Mock定义,加个@MockMethod
注解,一切统统搞定。
阅读这里了解更多故事。
0.6版本已发布,从0.5.x
升级到0.6.x
版本请参考版本升级指南
项目维护说明
由于当前并行项目较多,此项目暂时转入维护阶段,在此期间TestableMock
会继续提供不定期的版本更新。
如果有遇到其他任何使用问题和建议,请直接在Issues中提出,也可通过Pull Request提交您的代码,我们将尽快回复并处理。
目录结构
|-- testable-parent ➜ 提供各子模块的公共父pom文件 |-- testable-all ➜ 依赖聚合,便于一次性引用所有子模块功能 |-- testable-processor ➜ 编译期代码预处理模块,提供测试辅助功能 |-- testable-agent ➜ JavaAgent模块,提供Mock测试相关功能 |-- testable-core ➜ 基础功能模块,提供Mock相关注解和工具类 |-- testable-maven-plugin ➜ Maven插件模块,用于简化JavaAgent注入 |-- tool ➜ 项目开发过程中的工具脚本 |-- demo | |-- java-demo ➜ Java语言的示例代码 | `-- kotlin-demo ➜ Kotlin语言的示例代码 `-- docs ➜ 项目使用文档
构建项目
主项目使用JDK 1.6+和Maven 3+版本构建,其中demo
子项目需要JDK 1.8+版本。
mvn clean install
本地生成文档
docsify serve docs
TestableMock文档使用docsify
工具生成,构建前请安装nodejs运行时,并使用npm install -g docsify
命令安装文档生成工具。