test(wave142): transition_presets 单测补全 +65 #1065
Reference in New Issue
Block a user
Delete Branch "test/wave142-transition-presets"
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?
变更说明
转场预设库 domain 层单测补全,新增65个测试用例。
测试覆盖
本地验证
【阻塞级判定】
📊 审查概览
🔴 阻塞级问题(必须修复)
无
💡 改进建议(不阻塞合并)
[tests/unit/test_transition_presets.py: 136, 142] 测试用例使用了硬编码的精确数量
test_filter_by_category_slide和test_filter_by_category_basic中,分别使用了assert len(results) == 4和assert len(results) == 2。这种断言方式使得测试非常脆弱,一旦业务逻辑扩展增加了新的转场预设(例如新增一个 slide 类型的转场),测试就会失败。建议改为assert len(results) >= 4,或者断言特定的 ID 存在于结果中。[tests/unit/test_transition_presets.py: 247] 硬编码了具体的业务配置值
test_dissolve_longer_default中断言default_duration == 0.8。如果未来业务需求调整了“溶解”效果的默认时长,该测试将非预期地失败。建议改为检查范围(例如assert p.default_duration > 0.5),除非该值是绝对不可变更的契约。[tests/unit/test_transition_presets.py: 43]`
test_frozen_immutable中,将捕获的异常从FrozenInstanceError改为了通用的Exception。虽然这能通过测试,但降低了测试的精确度。如果代码抛出其他类型的异常(如RuntimeError),测试也会误判为通过。建议重新导入FrozenInstanceError并进行特定捕获,以确保测试意图准确。✅ 良好实践
pytest.mark.parametrize对典型预设进行参数化测试,显著减少了重复代码,提高了可维护性。test_category_and_keyword_combined等组合查询测试,覆盖了更复杂的业务场景。from __future__ import annotations,提升了类型提示的兼容性。🤖 由 AI 代码审查机器人自动生成 | 2026-07-28 03:21:31 | 模型:
🚀 预览环境已部署
🗑️ 预览环境已清理
PR #1065 已关闭或合并,对应的预览环境已被清理。