add project description

This commit is contained in:
金戟 2020-10-25 14:24:21 +08:00
parent 53d27f337c
commit 9981aafa93
3 changed files with 34 additions and 2 deletions

View File

@ -1 +1,26 @@
# Testable
基于代码和字节码增强的Java单元测试辅助工具包含以下功能
- 使单元测试能直接调用和访问被测类的私有成员,解决私有方法无法测试的问题
- 使被测类的任意方法调用快速替换为Mock实现"指哪换哪"解决传统Mock工具使用繁琐的问题
## 目录结构
```bash
|-- testable-core ➜ 核心组件,提供测试辅助功能、注解和工具类
|-- testable-agent ➜ JavaAgent组件提供Mock测试相关功能
|-- testable-maven-plugin ➜ Maven插件组件用于简化JavaAgent注入
|-- demo
| |-- java-demo ➜ Java语言的示例代码
| `-- kotlin-demo ➜ Kotlin语言的示例代码
`-- docs ➜ 项目使用文档
```
## 构建项目
主项目使用JDK 1.6+和Maven 3+版本构建,其中`demo`子项目需要JDK 1.8+版本。
```bash
mvn clean package
```

0
docs/.nojekyll Normal file
View File

View File

@ -40,7 +40,14 @@
### 访问私有成员字段和方法
在测试类上添加`@EnablePrivateAccess`注解然后即可直接在单元测试里像访问公有成员一样调用被测类的私有方法、读写私有成员变量了虽然IDE可能会提升语法有误但编译器将会正常运行测试。
只需为测试类添加`@EnablePrivateAccess`注解,即可在测试用例中获得以下增强能力:
- 调用被测类的私有方法
- 读取被测类的私有成员
- 修改被测类的私有成员
- 修改被测类的常量成员使用final或static final修饰的成员
访问和修改私有、常量成员时IDE可能会提示语法有误但编译器将能够正常运行测试。
若不希望看到IDE的语法错误提醒或是在基于JVM的非Java语言项目里譬如Kotlin语言也可以借助`PrivateAccessor`工具类来实现私有成员的访问。
@ -50,7 +57,7 @@
**【1】覆写任意类的方法调用**
定义一个普通方法,使它与待覆写方法名称和返回值类型完全一致,仅比待覆写方法在首位多一个该方法所属对象类型的参数,然后为这个方法加上`@TestableMock`注解,并设置`targetClass`属性值为被Mock方法的所属类型。
定义一个普通方法,使它与需覆写的方法名称和返回值类型完全一致,且比原方法的参数列表在首位多一个与该方法所属对象类型一致的参数。然后为这个方法加上`@TestableMock`注解,并设置`targetClass`属性值也为该方法所属对象的类型。
此时被测类中所有对该类指定方法的调用将在单元测试运行时自动被替换为对上述自定义Mock方法的调用。