5509cab (base,上一 Release) → 59e1a67 (head,当前版本)| 文件 | 变更 | 性质 |
|---|---|---|
src/services/data_service.rs | 新增测试函数 resolve_price_table_carries_mom_column(第 4141 行起,56 行) | 契约/集成测试 |
该测试为「公开价按日」表(spot:commodity:{id}:price:public:30d:day-date:chart)的环比列契约(2026-10-15 工单 #33 v2 带环比卡)做端到端校验:
svc.resolve_placeholder(&key, None) 解析占位符;mom 列(key=mom / label=环比);null(首期无前值)且至少 1 格算出环比值。说明:环比计算逻辑(
with_mom,含"不跨系列/前值为 0 归 null/保留 2 位小数")及其单元测试在本区间之前已存在,本次提交仅补一条解析层实测,不引入生产行为变化。
| 严重度 | 类型 | 位置 | 描述 |
|---|---|---|---|
| Medium | Dependency | src/services/data_service.rs:4141 | resolve_price_table_carries_mom_column 直接依赖 13 个函数,超过阈值 10 |
研判:可接受,属测试代码的指标性提示,非真实缺陷。
#[tokio::test] 测试用例,并非生产调用路径。测试天然会串联 setup / Statement::from_string / DbBackend::Postgres / query_one / try_get / resolve_placeholder / format! / position / is_null / as_f64 / filter / count 等,13 个依赖是"测试脚手架 + 断言"的正常集合。short_codes_are_deterministic_...(36)、spot_commodities_by_days(14)等同样命中,属既有噪声基线)。#[test] / mod tests 内的函数,而非拆分测试。无。 base→head 区间质检问题集合对比结果:修复 0 条 / 新增 1 条(即上表那条测试耦合提示)。
优点
mom 列存在,还校验行宽一致性(row.len() == columns.len())与首期 null + 至少一格有值,能有效捕获"新列未逐行接入"和"计算未接上"两类回归。svc.cache_enabled = false 绕开共享响应缓存,规避 TTL 内旧结构造成的假红/假绿,考虑周到。风险 / 局限(低)
DZS_DATABASE_URL / DZS_REDIS_URL,未配置时直接 return。在无数据库的 CI 环境下该用例形同空跑,无法防回归——这是本用例最大的有效性缺口(与既有集成用例一致,非本次新增问题)。format!("spot:commodity:{id}:price:public:30d:day-date:chart") 硬编码占位符格式,键格式演进时需同步维护。nulls >= 1 依赖存在至少 2 期数据(首期无前值),若库中该品类仅 1 期数据可能失败;当前 30d 窗口下概率低。NonNull 索引 r[mom_index] 依赖上方循环先完成行宽断言,顺序正确、无越界风险。