优化
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
# Admin 测试环境 HTTP 模块
|
||||
|
||||
总入口是 `../admin-test-env-acceptance.mjs`。每个业务模块使用独立的同名 `.mjs` 文件,避免多个对话同时修改总入口。
|
||||
|
||||
例如 `--modules system,inbound-weight-ocr` 会依次加载:
|
||||
|
||||
- `system.mjs`
|
||||
- `inbound-weight-ocr.mjs`
|
||||
|
||||
模块只需导出:
|
||||
|
||||
```js
|
||||
export async function run(context) {
|
||||
const response = await context.request('GET', '/api/platform/v1/example')
|
||||
const data = context.apiSuccess('example', '查询示例', response)
|
||||
context.assert('example', '示例结构正确', response, Array.isArray(data), `count=${data?.length ?? 'n/a'}`)
|
||||
}
|
||||
```
|
||||
|
||||
## 可用上下文
|
||||
|
||||
- `request(method, path, body?)`:JSON HTTP 请求,自动使用平台 Token。
|
||||
- `requestBinary(method, path)`:文件下载,不把二进制写入报告。
|
||||
- `apiSuccess(module, name, response, evidence?, options?)`:断言 HTTP 200 + body code `200`,成功时返回 data。
|
||||
- `assert(module, name, response, condition, evidence, options?)`:业务断言。
|
||||
- `expectConflict(module, name, response, scenario)`:断言并发冲突。
|
||||
- `addStep(...)`:写入统一步骤报告。
|
||||
- `marker`:本轮唯一测试标记。
|
||||
- `createdResources`:登记测试资源 ID。
|
||||
- `context`:模块间共享少量 ID;模块应尽量独立。
|
||||
|
||||
## 约束
|
||||
|
||||
- 不记录密码、Token、图片二进制或 OCR 原文全文。
|
||||
- 测试数据必须带 `context.marker`;可删除的清理,不能删除的最终停用。
|
||||
- 缺少已确认契约时记录失败或 `deploymentBlocker`,不得模拟成功。
|
||||
- 一个模块只修改自己的 `.mjs`,不要修改其他模块文件。
|
||||
Reference in New Issue
Block a user