mirror of
https://github.com/alibaba/testable-mock.git
synced 2025-03-09 17:20:46 +08:00
add project description
This commit is contained in:
parent
53d27f337c
commit
9981aafa93
25
README.md
25
README.md
@ -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
0
docs/.nojekyll
Normal 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方法的调用。
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user