first commit

This commit is contained in:
douboer
2026-01-21 13:22:26 +08:00
commit 24452838a1
28 changed files with 7901 additions and 0 deletions

117
tests/README.md Normal file
View File

@@ -0,0 +1,117 @@
# 测试文档
本目录包含罗盘项目的所有测试用例。
## 测试文件结构
```
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 (48 个测试)
测试所有工具函数的核心逻辑:
- **polarToXY**: 极坐标转换
- **normalizeDeg**: 角度归一化
- **annularSectorCentroid**: 扇形形心计算
- **annularSectorPath**: SVG 路径生成
- **annularSectorInsetPath**: 内缩路径生成
- **calculateLabelRotation**: 文字旋转角度
- **generateSectorColor**: 扇区颜色生成
- **generateTextPath**: 文字路径生成
- **generateVerticalTextPath**: 竖排文字路径
- **getTextColorForBackground**: 文字颜色适配
- **calculateSectorFontSize**: 字体大小计算
### 3. useLuopan.test.ts (32 个测试)
测试罗盘业务逻辑组合函数:
- 基本功能和返回值验证
- 扇区生成逻辑
- 文字位置模式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 个
- **总测试用例**: 159 个
- **测试通过率**: 100%
- **测试运行时间**: ~1.8 秒
## 测试编写规范
1. **描述清晰**: 每个测试用例的描述应该清楚说明测试的内容
2. **独立性**: 测试用例之间应该相互独立,不依赖执行顺序
3. **覆盖全面**: 包括正常情况、边界情况和异常情况
4. **断言准确**: 使用合适的断言方法,确保测试的准确性
5. **可维护性**: 测试代码应该易于理解和维护
## 技术栈
- **测试框架**: Vitest
- **Vue 测试工具**: @vue/test-utils
- **测试环境**: happy-dom
## 贡献指南
添加新功能时,请确保:
1. 为新功能编写对应的测试用例
2. 确保所有现有测试通过
3. 测试覆盖率不低于当前水平
4. 测试用例描述清晰,易于理解