testable-mock/docs/zh-cn/doc/usage.md
2020-11-22 22:12:51 +08:00

1.8 KiB
Raw Blame History

使用TestableMock

TestableMock是基于源码和字节码增强的Java单元测试辅助工具包含以下功能

  • 访问被测类私有成员:使单元测试能直接调用和访问被测类的私有成员,解决私有成员初始化和私有方法测试的问题
  • 快速Mock任意方法使被测类的任意方法调用快速替换为Mock方法实现"指哪换哪"解决传统Mock工具使用繁琐的问题

在Maven项目中使用

pom.xml文件中添加testable-processor依赖:

<dependency>
    <groupId>com.alibaba.testable</groupId>
    <artifactId>testable-processor</artifactId>
    <version>${testable.version}</version>
    <scope>provided</scope>
</dependency>

以及testable-maven-plugin插件:

<plugin>
    <groupId>com.alibaba.testable</groupId>
    <artifactId>testable-maven-plugin</artifactId>
    <version>${testable.version}</version>
    <executions>
        <execution>
            <id>prepare</id>
            <goals>
                <goal>prepare</goal>
            </goals>
        </execution>
    </executions>
</plugin>

其中${testable.version}需替换为具体版本号,当前最新版本为0.3.0

若仅需使用单元测试随意访问被测类私有字段和方法的能力不使用Mock功能testable-maven-plugin插件可以省略。

在Gradle项目中使用

build.gradle文件中添加testable-processor依赖:

dependencies {
    testCompile('com.alibaba.testable:testable-processor:0.3.0')
}

然后在测试配置中添加javaagent

test {
    jvmArgs "-javaagent:${classpath.find { it.name.contains("testable-agent") }.absolutePath}"
}

该配置尚未在Gradle项目上经过实际验证可行性待确认。