test: 增加采购规格跨端联合验收 (#258)

This commit is contained in:
chengma
2026-08-17 18:34:35 +08:00
parent 24f91bb7d7
commit be900b2411
6 changed files with 1235 additions and 0 deletions
+30
View File
@@ -281,3 +281,33 @@ CMAutoBuyAdmin/
`interrupted`;成功映射不回滚,未完成条目允许重新勾选,且不能因为重试覆盖人工映射。
- 批次状态接口按创建人隔离,管理员除外;响应和日志只含批次号、计数和脱敏原因,不含密钥、
完整模型请求/响应或订单隐私数据。
### 11.1 采购运行时规格解析联合验收
Admin 和 Client 必须共同读取
`testdata/contracts/purchase_spec_resolution_v1.json`,不得各自维护一份容易漂移的样例。
这份样例只使用虚构任务号、Client 编号、商品标题和规格,不得加入真实订单、账号、地址、
手机号、设备号或凭据。
联合验收至少覆盖:
- 规则唯一命中、规则歧义、AI 白名单命中、低置信度、额外维度、伪造候选和模型超时;
- `snapshot_hash`、`idempotency_key`、任务版本、领取关系和请求大小等 HTTP 错误;
- 同一请求重放返回同一结果,冲突请求不得覆盖原结果或重复调用模型;
- SQLite 服务测试和以 `_test` 结尾的 MySQL 8 测试库均验证迁移、唯一约束和审计持久化;
- Client 的 Mock 与真实 HTTP Gateway 对同一向量产生相同请求和错误分类。
从仓库根目录执行核心联合测试:
```powershell
Set-Location admin
$env:GOTOOLCHAIN='go1.23.0'
go test ./handler/api ./service -run PurchaseSpecResolutionContractVectors -count=1
Set-Location ../client
C:/Python310/python.exe -m pytest -q test/test_purchase_spec_resolution_contract_vectors.py
```
真实设备验收不是自动测试的替代品。它只能在项目负责人指定测试商品、账号、Client、Android
设备和价格上限后执行,并且最多创建一个未付款订单;到达不可逆阶段后只能核对订单,禁止重试
下单,整个过程不进入付款页面。