1.4 KiB
1.4 KiB
测试
运行命令
./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:@Testtruth:断言(更可读的assertThat(...))turbine:Flow 测试(需要时再加)kotlinx-coroutines-test:runTest
约定
- 不写"假测试"(无断言的空壳);每条测试验证一个明确行为。
- 提交 PR 时在描述里写清运行的命令与结果。