# 测试unitjs

## 规则（Rules）

# JS单元测试 - 规范

## 1. 测试框架规范
- 测试框架：Jest（推荐）/ Mocha
- 断言库：Jest自带断言 / Chai
- 覆盖率工具：c8 / Jest内置 --coverage

## 2. 测试结构规范
- 测试函数命名使用小驼峰（camelCase）
- 变量命名使用小写蛇形（snake_case）
- 使用 `describe('模块名', () => {})` 和 `it('测试描述', () => {})` 组织测试结构
- 缩进统一使用2个空格
- 注释使用JSDoc格式

## 3. 覆盖率要求
- 行覆盖率必须 ≥ 80%
- 禁止为了达到覆盖率而编写无效用例（每个用例必须有明确断言）
- 禁止忽略失败的测试用例

## 方法（Methods）

# JS单元测试 - 方法

## 流程概览
```
分析代码结构 → 编写测试用例 → 执行测试获取覆盖率 → 生成报告 → 回归测试
```

## 步骤1：分析代码结构
搜索JS代码文件，读取每个文件提取导出函数。

## 步骤2：编写单元测试用例
对每个函数编写测试用例，覆盖正常路径、边界值和异常路径。

## 步骤3：执行测试并获取覆盖率
使用Jest执行测试，提取语句/分支/函数/行覆盖率指标。

## 步骤4：生成测试报告
包含测试概述、用例执行结果、覆盖率数据、失败用例详情。

## 步骤5：回归测试
代码修改后重新执行测试，对比覆盖率变化趋势。

## 技巧（Tips）

# JS单元测试 - 技巧

## 1. 测试覆盖率边界
关注核心业务逻辑的覆盖率，工具类、配置类代码可适当放宽要求。

## 2. Mock外部依赖
对外部API、数据库等依赖使用Jest的mock功能，保证测试的独立性。

## 3. 测试描述清晰
每个it的测试描述要清晰说明测试场景和预期结果，便于定位问题。
