# Consul KV 与配置单元测试报告
# 1. 测试范围
覆盖 test/Air.Cloud.UnitTest/Modules/Consul/ConsulMiddlewareContractTests.cs。
目标是验证 IKVCenterStandard 的 KV 语义,以及配置刷新在抽象配置源上的边界行为。
# 2. 测试内容与边界
# KV 基础能力
| 测试目标 | 边界内入参 | 边界外 / 异常入参 | 预期结果 |
|---|---|---|---|
| 添加并读取 KV | key = air-cloud-it/unit-kv,value = consul-value | 无 | AddOrUpdateAsync 返回 true,读取后 Key 和 Value 相等。 |
| 前缀查询 | prefix = air-cloud-it | 前缀下存在目标 Key | 查询结果包含目标 Key/Value。 |
| 删除 KV | 删除已存在 Key | 删除后再次读取 | 删除返回 true,再次读取返回 null。 |
# KV 边界能力
| 测试目标 | 边界内入参 | 边界外 / 异常入参 | 预期结果 |
|---|---|---|---|
| 覆盖写入 | 同一 Key 先写 value-v1,再写 value-v2 | 重复写入同一 Key | 最终读取值为 value-v2。 |
| 多 Key 前缀查询 | prefix/one = 1,prefix/two = 2 | 同时存在 other/three = 3 | 查询结果数量为 2,只包含目标前缀,不包含其他前缀。 |
| 删除不存在 Key | key = air-cloud-it/unit-missing | Key 从未写入 | 返回 false,调用方可识别未删除任何数据。 |
# 配置刷新契约
| 测试目标 | 边界内入参 | 边界外 / 异常入参 | 预期结果 |
|---|---|---|---|
| 初次加载配置 | Feature:Flag = value-v1 | 无 | configuration["Feature:Flag"] = value-v1。 |
| 配置刷新 | Provider 将 Feature:Flag 改为 value-v2 并触发 Reload | 配置源内容变化 | 同一个配置对象读取到 value-v2。 |
# 3. 测试结果
本报告已单独运行对应过滤命令,结果:5/5 通过。
dotnet test test/Air.Cloud.UnitTest/Air.Cloud.UnitTest.csproj --no-restore --filter "FullyQualifiedName~ConsulMiddlewareContractTests"
# 4. 对应目标中间件版本
单元测试不连接真实 Consul。目标是 IKVCenterStandard 和 IConfiguration 刷新契约。