新增5个GUI测试模块,覆盖所有主要功能: - test_login_gui.py: 登录和密码管理测试(7个测试) - test_stock_gui.py: 库存管理测试(4个测试) - test_raw_material_gui.py: 原料管理测试(7个测试) - test_garment_gui.py: 款式管理测试(2个测试) - test_purchase_order_gui.py: 采购单生成测试(2个测试) 测试特点: - 真实GUI交互测试(填写表单、点击按钮、搜索过滤) - 业务逻辑验证(重复数据拒绝、空值验证、计算正确性) - 独立测试环境(临时数据库,自动清理) - 自动化消息框(Mock QMessageBox) 总计22个GUI测试,全部通过 ✓ 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
157 lines
3.6 KiB
Markdown
157 lines
3.6 KiB
Markdown
# GUI测试文档
|
||
|
||
## 概述
|
||
|
||
本项目已为所有主要模块创建了基于PyQt的GUI集成测试,用于测试实际的用户界面交互和业务逻辑。
|
||
|
||
## 测试文件列表
|
||
|
||
### 1. test_login_gui.py - 登录对话框GUI测试
|
||
**测试数量**: 7个测试
|
||
**测试内容**:
|
||
- 管理员登录成功/失败
|
||
- 普通用户登录成功/失败
|
||
- 获取默认密码
|
||
- 设置新密码
|
||
- 使用新密码登录
|
||
|
||
### 2. test_stock_gui.py - 库存管理GUI测试
|
||
**测试数量**: 4个测试
|
||
**测试内容**:
|
||
- 加载原料列表
|
||
- 搜索原料
|
||
- 库存数量计算
|
||
- 库存扣除消耗后的计算
|
||
|
||
### 3. test_raw_material_gui.py - 原料管理GUI测试
|
||
**测试数量**: 7个测试
|
||
**测试内容**:
|
||
- 添加基本原料
|
||
- 添加重复型号(验证拒绝)
|
||
- 添加空型号(验证拒绝)
|
||
- 删除原料
|
||
- 编辑原料
|
||
- 按类目过滤
|
||
- 按型号搜索
|
||
|
||
### 4. test_garment_gui.py - 款式管理GUI测试
|
||
**测试数量**: 2个测试
|
||
**测试内容**:
|
||
- 加载款式列表
|
||
- 搜索款式
|
||
|
||
### 5. test_purchase_order_gui.py - 采购单生成GUI测试
|
||
**测试数量**: 2个测试
|
||
**测试内容**:
|
||
- 生成采购单
|
||
- 材料用量计算
|
||
|
||
## 测试统计
|
||
|
||
**总测试数量**: 22个测试
|
||
**测试状态**: ✓ 全部通过
|
||
**测试时间**: ~14秒
|
||
|
||
## 运行测试
|
||
|
||
### 运行单个模块测试
|
||
```bash
|
||
# 登录测试
|
||
python test\test_login_gui.py -v
|
||
|
||
# 库存测试
|
||
python test\test_stock_gui.py -v
|
||
|
||
# 原料测试
|
||
python test\test_raw_material_gui.py -v
|
||
|
||
# 款式测试
|
||
python test\test_garment_gui.py -v
|
||
|
||
# 采购单测试
|
||
python test\test_purchase_order_gui.py -v
|
||
```
|
||
|
||
### 运行所有GUI测试
|
||
```bash
|
||
cd test
|
||
python -m unittest test_login_gui.py test_stock_gui.py test_raw_material_gui.py test_garment_gui.py test_purchase_order_gui.py -v
|
||
```
|
||
|
||
## 测试特点
|
||
|
||
### 1. 真实GUI交互
|
||
- 模拟用户填写表单
|
||
- 模拟点击按钮
|
||
- 模拟选择下拉框
|
||
- 模拟输入搜索关键词
|
||
|
||
### 2. 业务逻辑验证
|
||
- 验证重复数据拒绝
|
||
- 验证空值验证
|
||
- 验证数据计算正确性
|
||
- 验证过滤和搜索功能
|
||
|
||
### 3. 独立测试环境
|
||
- 每个测试使用临时数据库
|
||
- 测试之间互不干扰
|
||
- 自动清理测试数据
|
||
|
||
### 4. 自动化消息框
|
||
- Mock了QMessageBox以便自动化测试
|
||
- 不需要人工点击确认对话框
|
||
- 可以验证警告和错误消息
|
||
|
||
## 测试架构
|
||
|
||
```
|
||
test/
|
||
├── test_login_gui.py # 登录对话框测试
|
||
├── test_stock_gui.py # 库存管理测试
|
||
├── test_raw_material_gui.py # 原料管理测试
|
||
├── test_garment_gui.py # 款式管理测试
|
||
├── test_purchase_order_gui.py # 采购单生成测试
|
||
└── README_GUI_TESTS.md # 本文档
|
||
```
|
||
|
||
## 依赖项
|
||
|
||
- Python 3.x
|
||
- PyQt5
|
||
- sqlite3 (内置)
|
||
- unittest (内置)
|
||
|
||
## 注意事项
|
||
|
||
1. 测试需要在有GUI环境的系统上运行
|
||
2. 测试会创建临时数据库文件,测试后自动清理
|
||
3. 所有消息框已被Mock,不会弹出实际对话框
|
||
4. 测试使用独立的QApplication实例
|
||
|
||
## 扩展测试
|
||
|
||
如需添加新的GUI测试,请参考现有测试文件的结构:
|
||
|
||
1. 继承 `unittest.TestCase`
|
||
2. 在 `setUpClass` 中创建 `QApplication` 实例
|
||
3. 在 `setUp` 中创建临时数据库和对话框
|
||
4. Mock消息框以便自动化
|
||
5. 在 `tearDown` 中清理资源
|
||
6. 编写具体的测试方法
|
||
|
||
## 测试覆盖率
|
||
|
||
当前GUI测试覆盖了以下核心功能:
|
||
- ✓ 用户登录和密码管理
|
||
- ✓ 原料库管理(增删改查)
|
||
- ✓ 库存管理和计算
|
||
- ✓ 款式管理
|
||
- ✓ 采购单生成和计算
|
||
|
||
## 维护建议
|
||
|
||
1. 每次修改GUI代码后运行相关测试
|
||
2. 添加新功能时同步添加GUI测试
|
||
3. 定期运行所有测试确保系统稳定性
|
||
4. 保持测试代码的可读性和可维护性
|