115 lines
2.9 KiB
Markdown
115 lines
2.9 KiB
Markdown
# 测试文档
|
||
|
||
本目录包含罗盘项目的所有测试用例。
|
||
|
||
## 测试文件结构
|
||
|
||
```
|
||
tests/
|
||
├── README.md # 本文档
|
||
├── constants.test.ts # 常量和配置测试
|
||
├── utils.test.ts # 工具函数单元测试
|
||
├── useLuopan.test.ts # 组合函数业务逻辑测试
|
||
└── Luopan.test.ts # Vue 组件测试
|
||
```
|
||
|
||
## 测试覆盖范围
|
||
|
||
### 1. constants.test.ts (22 个测试)
|
||
测试项目的常量配置和示例数据:
|
||
- 默认尺寸、文字位置等配置项的有效性
|
||
- 示例数据的完整性和正确性
|
||
- 角度数组和半径数组的有效性验证
|
||
- 不同类型示例的存在性检查
|
||
|
||
### 2. utils.test.ts (39 个测试)
|
||
测试所有工具函数的核心逻辑:
|
||
- **polarToXY**: 极坐标转换
|
||
- **normalizeDeg**: 角度归一化
|
||
- **annularSectorCentroid**: 扇形形心计算
|
||
- **annularSectorPath**: SVG 路径生成
|
||
- **annularSectorInsetPath**: 内缩路径生成
|
||
- **generateTextPath**: 文字路径生成
|
||
- **generateVerticalTextPath**: 竖排文字路径
|
||
- **getTextColorForBackground**: 文字颜色适配
|
||
- **calculateSectorFontSize**: 字体大小计算
|
||
|
||
### 3. useLuopan.test.ts (29 个测试)
|
||
测试罗盘业务逻辑组合函数:
|
||
- 基本功能和返回值验证
|
||
- 扇区生成逻辑
|
||
- 文字位置模式(middle/centroid)
|
||
- 竖排文字判断
|
||
- 内部填色逻辑
|
||
- 响应式更新
|
||
- 边界情况处理
|
||
|
||
### 4. Luopan.test.ts (57 个测试)
|
||
测试 Vue 组件的完整功能:
|
||
- 组件基本渲染
|
||
- 示例切换功能
|
||
- 辅助线显示/隐藏
|
||
- 文字位置模式选择
|
||
- 缩放功能(放大、缩小、重置)
|
||
- 鼠标滚轮缩放
|
||
- 鼠标拖拽平移
|
||
- 扇区渲染
|
||
- 文字渲染
|
||
- 辅助线渲染
|
||
- 说明文本
|
||
- 背景渲染
|
||
- 样式验证
|
||
- 边界情况
|
||
- 性能测试
|
||
|
||
## 运行测试
|
||
|
||
### 运行所有测试
|
||
```bash
|
||
npm test
|
||
```
|
||
|
||
### 运行单个测试文件
|
||
```bash
|
||
npm test tests/utils.test.ts
|
||
```
|
||
|
||
### 运行测试并监视文件变化
|
||
```bash
|
||
npm test -- --watch
|
||
```
|
||
|
||
### 生成测试覆盖率报告
|
||
```bash
|
||
npm test -- --coverage
|
||
```
|
||
|
||
## 测试统计
|
||
|
||
- **总测试文件**: 4 个
|
||
- **总测试用例**: 147 个
|
||
- **测试通过率**: 100%
|
||
- **测试运行时间**: ~1.8 秒
|
||
|
||
## 测试编写规范
|
||
|
||
1. **描述清晰**: 每个测试用例的描述应该清楚说明测试的内容
|
||
2. **独立性**: 测试用例之间应该相互独立,不依赖执行顺序
|
||
3. **覆盖全面**: 包括正常情况、边界情况和异常情况
|
||
4. **断言准确**: 使用合适的断言方法,确保测试的准确性
|
||
5. **可维护性**: 测试代码应该易于理解和维护
|
||
|
||
## 技术栈
|
||
|
||
- **测试框架**: Vitest
|
||
- **Vue 测试工具**: @vue/test-utils
|
||
- **测试环境**: happy-dom
|
||
|
||
## 贡献指南
|
||
|
||
添加新功能时,请确保:
|
||
1. 为新功能编写对应的测试用例
|
||
2. 确保所有现有测试通过
|
||
3. 测试覆盖率不低于当前水平
|
||
4. 测试用例描述清晰,易于理解
|