新增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>
3.6 KiB
3.6 KiB
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秒
运行测试
运行单个模块测试
# 登录测试
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测试
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 (内置)
注意事项
- 测试需要在有GUI环境的系统上运行
- 测试会创建临时数据库文件,测试后自动清理
- 所有消息框已被Mock,不会弹出实际对话框
- 测试使用独立的QApplication实例
扩展测试
如需添加新的GUI测试,请参考现有测试文件的结构:
- 继承
unittest.TestCase - 在
setUpClass中创建QApplication实例 - 在
setUp中创建临时数据库和对话框 - Mock消息框以便自动化
- 在
tearDown中清理资源 - 编写具体的测试方法
测试覆盖率
当前GUI测试覆盖了以下核心功能:
- ✓ 用户登录和密码管理
- ✓ 原料库管理(增删改查)
- ✓ 库存管理和计算
- ✓ 款式管理
- ✓ 采购单生成和计算
维护建议
- 每次修改GUI代码后运行相关测试
- 添加新功能时同步添加GUI测试
- 定期运行所有测试确保系统稳定性
- 保持测试代码的可读性和可维护性