专栏:HarmonyOS 三方库适配实战(16/30)
核心问题:上游测试无法原样运行时,怎样证明适配没有改坏核心行为?
摘要
迁移测试不是复制文件,而是保留行为契约。本文把上游用例拆成正常、空值、稳定输入和错误分支,写成 Hypium 本地测试向量,并把“测试代码已写”“目标 SDK 已编译”“Local Test 已执行”“设备测试已执行”分开记录。当前教学工程已完成 HAR/HAP 构建;本机没有可用的 Local Test 任务回执和设备,因此不会把测试清单写成测试通过。
先迁移向量,再迁移框架
上游可能使用 Jest、Mocha 或自定义脚本,HarmonyOS 工程使用自己的测试入口。真正需要保留的是:
- 输入;
- 预期值或预期错误;
- 前置状态;
- 是否允许副作用;
- 浮点、编码和顺序等比较规则。
图 1:越靠下越适合高频执行;设备测试仍不可由本地断言替代。
为文本库建立最小回归集
| 类别 | 输入 | 预期 |
|---|---|---|
| 正常值 | " HarmonyOS library " | "HarmonyOS library" |
| 稳定值 | "stable input" | 内容不变,changed=false |
| 空值 | "" | 返回空字符串 |
| 错误分支 | requireNonEmpty(" ") | 抛出错误 |
| 选项组合 | trim/collapse/lowercase | 顺序可解释 |
图 2:同一输入向量贯穿上游基线、ArkTS API 和消费方契约。
Hypium 测试代码
import{describe,it,expect}from'@ohos/hypium'import{NormalizationResult,NormalizeOptions,normalizeText,requireNonEmpty}from'@demo/text-tool'exportdefaultfunctionlocalUnitTest(){describe('textToolContract',()=>{