编码标准和测试策略
版本信息
| 版本 |
日期 |
描述 |
作者 |
| 2.4 |
2025-09-20 |
与主架构文档版本一致 |
Winston |
现有标准合规性
- 代码风格: TypeScript严格模式,一致的缩进和命名
- linting规则: 已配置ESLint,支持TypeScript和React
- 测试模式: 完整的测试框架已配置(Vitest + Testing Library + Playwright)
- 文档风格: 代码注释良好,测试策略文档完整
- UI包开发: 必须遵循UI包开发规范(基于史诗008经验总结)
增强特定标准
- 测试框架: 使用Vitest + Testing Library + hono/testing + Playwright
- 测试位置:
__tests__ 文件夹与源码并列
- 覆盖率目标: 核心业务逻辑 > 80%
- 测试类型: 单元测试、集成测试、E2E测试
关键集成规则
- 现有API兼容性: 确保测试不破坏现有API契约
- 数据库集成: 使用测试数据库,避免污染生产数据
- 错误处理: 测试各种错误场景和边界条件
- 日志一致性: 测试日志格式和错误信息
UI包开发提示
必须遵循的规范
开发UI包时,必须参考并遵循UI包开发规范,该规范基于史诗008(AllIn UI模块移植)的经验总结。
关键检查点(基于史诗008经验)
- API路径映射验证:开发前必须验证故事中的API路径映射与实际后端路由定义的一致性
- 类型推断最佳实践:必须使用RPC推断类型,而不是直接导入schema类型
- 测试选择器优化:必须为关键交互元素添加
data-testid属性
- 表单组件模式:必须使用条件渲染两个独立的Form组件
- API调用一致性:必须根据实际路由名称修正API调用
常见错误避免
- ❌ 不要直接导入schema类型(可能导致Date/string类型不匹配)
- ❌ 不要使用
getByText()查找可能重复的文本元素
- ❌ 不要在单个Form组件上动态切换props
- ❌ 不要使用故事中描述但实际不存在的路由名称
参考实现
- 广告管理UI包:
packages/advertisement-management-ui
- 平台管理UI包:
allin-packages/platform-management-ui
- 渠道管理UI包:
allin-packages/channel-management-ui(史诗008.002)