用途:为项目提供编写有效测试的指导规范,覆盖单元测试与集成测试两类场景。
主要能力与要求:单元测试方面,每个测试只验证一件事,使用描述性命名(如 test_user_creation_fails_with_invalid_email),模拟外部依赖,保持测试快速且相互隔离。集成测试方面,使用真实数据测试 API 端点,验证数据库状态变化,每次测试后清理测试数据,并为常见场景使用测试夹具。
运行方式(命令保持原样): 运行全部测试:npm test 仅运行单元测试:npm test:unit 运行集成测试(需要数据库):npm test:integration 带覆盖率运行测试:npm test:coverage
测试结构:tests/ 目录下分为 unit/(快速、隔离的单元测试)、integration/(需要外部服务的测试)、fixtures/(共享测试数据)、helpers/(测试工具)。
最佳实践:遵循 Arrange-Act-Assert 结构;尽可能每个测试只做一个断言、只验证一种行为;测试名称应描述场景;测试之间不得相互依赖,任意顺序均可运行;每个测试从已知状态开始。
覆盖率目标:追求 80% 以上的行覆盖率,优先覆盖关键路径,不要为覆盖率数字牺牲测试质量。
限制:资料仅说明上述规则与命令,未提供适用语言、框架版本、CI 集成方式或例外情况说明。