通过专项综合结论
49自动化测试
71断言
0测试数据残留
执行摘要
专项测试通过。 当前餐次推荐能量、八类推荐克重、累计重量、已取扣减、多菜 UUID 和 5g 取整均符合验收口径。
| 代码分支 | codex/vwcg-1296-dish-recommend-weight | 提交 | 36a8d2e91 |
|---|---|---|---|
| 容器 | zhctapp_v2_0 | 环境 | 本地 Docker + 开发库 zhct |
| 接口链路 | bindPlate → selectPlate → zhctPushMeal → selectPlate | ||
验收对象
| 字段 | 位置 | 含义 |
|---|---|---|
recommend_dishes_weight | dishes[] | 当前人员、当前餐次、当前菜品推荐取用克重 |
reality_dishes_weight_sum | nutrition | 当前人员、当天、当前餐次所有已上传菜品累计克重 |
类别剩余目标 = 当前能量档类别目标 - 当前餐次已取类别重量 推荐取用克重 = 类别剩余目标 / 菜品类别贡献系数 最终结果 = 按最接近的 5g 取整
自动化覆盖
能量档位17 档及关键边界
食物类别谷薯、肉、蛋、菜、果、豆、奶、坚果
配方换算生重、熟重、生熟比、可食部
扣减规则未取、部分已取、达标、超标
设备场景双称、多 UUID、异常 UUID
数据隔离人员、日期、餐次、meal_type
| 测试集 | 测试数 | 断言 | 结果 |
|---|---|---|---|
tests/Nutrition | 47 | 60 | PASS |
SelectPlateNutritionTest | 2 | 11 | PASS |
| 合计 | 49 | 71 | 全部通过 |
真实接口数值验证
创建 8 道类别贡献系数为 1 的临时菜品。绑定餐盘为午餐,推荐能量 858.7100 kcal,命中 <=1000 档。
| 类别 | 目标/首次实际 | 上传 | 手算剩余 | 接口实际 | 结果 |
|---|---|---|---|---|---|
| 谷薯 | 85 | 20 | 65 | 65 | 通过 |
| 畜禽水产 | 30 | 10 | 20 | 20 | 通过 |
| 蛋 | 20 | 5 | 15 | 15 | 通过 |
| 蔬菜 | 200 | 50 | 150 | 150 | 通过 |
| 水果 | 150 | 30 | 120 | 120 | 通过 |
| 豆 | 5 | 5 | 0 | 0 | 通过 |
| 奶 | 300 | 100 | 200 | 200 | 通过 |
| 坚果 | 10 | 10 | 0 | 0 | 通过 |
| 累计 | 230g | 230g | 一致 |
Trace ID:首次查询 6aa0bf9231262,上传 6aa0bfa1c3d73,修复后查询 6aa0c008923c0。
发现并修复的缺陷
绑定餐次与营养计算餐次不一致
首次造数时,绑盘和上传均为午餐,但营养查询按另一套时段规则判断为早餐,导致推荐能量取错、累计重量为 0、推荐量不扣减。
修复后:
selectPlate 统一使用绑定餐盘餐次;夜宵归并晚餐。复测返回午餐能量 858.7100 kcal、累计 230g,八类结果均与手算一致。清理与风险
| 数据 | 删除 | 残留 |
|---|---|---|
| 订单明细 / 一餐数据 | 8 / 8 | 0 / 0 |
| 订单 / 餐盘 | 1 / 1 | 0 / 0 |
| 临时配方 / 菜品 | 8 / 8 | 0 / 0 |
剩余确认项:
recommendWeight() 原注释称输入为日能量,当前实现按已确认方案传入单餐推荐能量,建议上线前由营养算法负责人再次确认。本报告不代表整个历史仓库全量 PHPUnit 全部通过。