docs: harness 工程文档
This commit is contained in:
34
docs/testing.md
Normal file
34
docs/testing.md
Normal file
@@ -0,0 +1,34 @@
|
||||
# 测试
|
||||
|
||||
## 运行命令
|
||||
|
||||
```bash
|
||||
./gradlew test # 纯 JVM 模块(core:model/domain/common)单元测试
|
||||
./gradlew testDebugUnitTest # Android 模块单元测试(本地 JVM)
|
||||
./gradlew connectedDebugAndroidTest # 仪器测试(需连接模拟器/真机)
|
||||
```
|
||||
|
||||
## 目录与命名
|
||||
|
||||
- JVM 单元测试:`src/test/kotlin/`;Android 单元测试:`src/test/kotlin/`。
|
||||
- 仪器测试:`src/androidTest/kotlin/`。
|
||||
- 测试类命名 `<Subject>Test`;测试方法名用反引号描述意图(`fun \`invoke delegates to implementation\`()`)。
|
||||
|
||||
## 测什么
|
||||
|
||||
- **领域层优先**(`core:domain`):UseCase、纯逻辑、状态转换——用 `kotlinx-coroutines-test` 的 `runTest` + `truth` 断言,快速且稳定。
|
||||
- **数据层**(`core:data`):Repository 用 fake 数据源(实现 `core:domain` 里的接口),不真打网络/数据库。
|
||||
- **UI**:`@HiltViewModel` 的 `ViewModel` 用 `StateFlow` 断言状态;Composable 用 Compose UI test。
|
||||
- 网络 / 数据库边界用接口隔离,用 fake/dummy 替换真实实现。
|
||||
|
||||
## 依赖
|
||||
|
||||
- `junit`:`@Test`
|
||||
- `truth`:断言(更可读的 `assertThat(...)`)
|
||||
- `turbine`:Flow 测试(需要时再加)
|
||||
- `kotlinx-coroutines-test`:`runTest`
|
||||
|
||||
## 约定
|
||||
|
||||
- 不写"假测试"(无断言的空壳);每条测试验证一个明确行为。
|
||||
- 提交 PR 时在描述里写清运行的命令与结果。
|
||||
Reference in New Issue
Block a user