示例成品 · 平台演示,按左边这组点选真跑出来的
示例:以下为补全后的断言片段(pytest 风格,示意)。
接口:获取订单详情 GET /api/order/detail
真实返回 JSON 关键片段(示意):
{"code":0,"message":"ok","data":{"orderId":"A1001","status":"PAID","amount":199.00,"items":[{"sku":"S1","qty":2}]}}
断言片段:
# 状态码断言
assert resp.status_code == 200, "HTTP 状态码应为 200"
# 业务码断言
assert body["code"] == 0, "业务码应为 0"
# 关键字段值断言
assert body["data"]["status"] == "PAID", "订单状态应为 PAID"
assert body["data"]["amount"] == 199.00, "金额与用例预期一致"
# 字段类型断言
assert isinstance(body["code"], int)
assert isinstance(body["data"]["orderId"], str)
assert isinstance(body["data"]["amount"], (int, float))
assert isinstance(body["data"]["items"], list)
# 非空断言
assert body["data"]["orderId"], "orderId 不应为空"
assert body["data"]["items"], "items 不应为空列表"
for item in body["data"]["items"]:
assert item.get("sku"), "sku 不应为空"
assert item.get("qty", 0) > 0, "qty 应大于 0"
# 错误码分支(按文档规则)
# 当 status 为 CANCELLED 时,amount 应等于 0
# assert body["data"]["amount"] == 0
建议补充的字段清单:
字段 | 断什么 | 依据
code | 值=0、类型 int | 文档业务码
message | 非空 | 文档说明
orderId | 非空、类型 str | 主键字段
status | 在枚举内 | 文档状态枚举
amount | 类型数值、非负 | 文档金额规则
items | 非空列表 | 文档明细非空
说明:以上断言由文档和返回报文生成,字段取舍请结合业务再核一遍。
点左边「开工 · 直接出成品」,出一份你自己的版本(文字免费)