test(unit): P3-1 第四波 新增3个领域模块单元测试(65个用例) #682
Reference in New Issue
Block a user
Delete Branch "test/p3-1-wave4-domain-tests"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
P3-1 第四波领域层单元测试补充
🚀 预览环境已部署
CI全绿,自动审批通过。
CI全绿,自动审批通过。
d92a335bdfto1cdd5cab46🗑️ 预览环境已清理
PR #682 已关闭或合并,对应的预览环境已被清理。
代码审查结果 - PR #682
⚠️ 问题(2个需要修改)
tests/unit/test_verification_code_domain.py 第68-72行:时间计算逻辑存在缺陷,会导致测试不稳定。
test_create_custom_ttl中,expected变量是在VerificationCode.create执行之后计算的。这意味着expected包含了create方法的执行耗时。vc.expires_at是在create方法内部生成的,因此expected必然晚于vc.expires_at。如果create方法执行超过 2 秒(例如因 GC、IO 或系统负载高),diff将超过 2,导致测试失败。test_create_default_ttl_300s的做法,在create调用前后分别记录时间点,构建一个时间窗口进行断言,或者使用freeze_time等 Mock 时间库来消除时间差。tests/unit/test_verification_code_domain.py 第124-131行:测试名称与断言逻辑矛盾,可能掩盖业务逻辑错误。
test_mark_used_idempotent(幂等性),但断言assert vc.used_at >= first_used_at验证了第二次调用会更新时间戳。幂等性是指多次执行产生的效果与一次执行相同。如果used_at时间被更新,则该方法不具备幂等性。如果业务意图是“记录最后一次操作时间”,则不应命名为幂等测试;如果业务意图是“标记为已使用”,则通常应设计为幂等(忽略后续调用),当前的断言可能验证了错误的非幂等行为。assert vc.used_at == first_used_at;如果不要求幂等,请重命名测试方法以准确反映其行为(如test_mark_used_updates_time)。💡 建议(2个可选)
tests/unit/test_classification_domain.py 第119行:建议使用枚举常量而非硬编码字符串。
assert job.classification == "scenic"依赖字符串字面量。如果AssetClassification枚举的值发生变化,测试将失效。建议改为assert job.classification == AssetClassification.SCENIC.value或直接比较枚举对象(若框架支持)。tests/unit/test_generated_video_domain.py 第148, 154, 165行:建议使用常量定义状态字符串。
"completed","pending_review","failed"等字符串。建议在测试类或模块中定义常量,以提高可维护性并避免拼写错误。✅ 格式检查通过 | ❌ 逻辑审查需修改 | ✅ 性能良好
🤖 由 AI 代码审查机器人自动生成 | 2026-07-21 19:40:53 | 模型: