201 lines
4.7 KiB
Markdown
201 lines
4.7 KiB
Markdown
# 测试指南
|
||
|
||
## 🚀 快速测试
|
||
|
||
### 方法 1: 游戏功能测试(推荐)
|
||
|
||
**最快的测试方法**:
|
||
|
||
1. 在 Godot 编辑器中打开 `scenes/TestGameplay.tscn`
|
||
2. 按 **F6** 运行场景
|
||
3. 使用 **WASD** 或方向键移动角色
|
||
|
||
**预期结果**:
|
||
- ✅ 看到 Datawhale 办公室场景
|
||
- ✅ 角色可以自由移动
|
||
- ✅ 相机跟随角色
|
||
- ✅ 角色被墙壁和家具阻挡
|
||
- ✅ 游戏流畅运行(30+ FPS)
|
||
|
||
### 方法 2: 单元测试套件
|
||
|
||
**全面的系统测试**:
|
||
|
||
1. 在 Godot 编辑器中打开 `tests/RunAllTests.tscn`
|
||
2. 按 **F6** 运行
|
||
3. 查看控制台输出
|
||
|
||
**预期结果**:
|
||
- 所有测试显示 ✅ PASSED
|
||
- 测试覆盖:角色数据、控制器、状态管理、输入处理、消息协议
|
||
|
||
## 🎮 游戏控制测试
|
||
|
||
### 基础移动
|
||
- **W** - 向上移动
|
||
- **S** - 向下移动
|
||
- **A** - 向左移动
|
||
- **D** - 向右移动
|
||
- **E** - 交互(控制台显示消息)
|
||
- **ESC** - 退出
|
||
|
||
### 相机控制(调试模式)
|
||
- **WASD** - 移动相机查看整个场景
|
||
- **Q** - 缩小视图
|
||
- **E** - 放大视图
|
||
- **鼠标滚轮** - 缩放
|
||
- **R** - 重置相机位置
|
||
|
||
## 🏢 场景功能测试
|
||
|
||
### Datawhale 办公室场景
|
||
|
||
**测试步骤**:
|
||
1. 打开 `scenes/DatawhaleOffice.tscn`
|
||
2. 按 F6 运行
|
||
3. 使用相机控制查看所有区域
|
||
|
||
**应该看到**:
|
||
- 灰色地板和深灰色墙壁
|
||
- 棕色家具(办公桌、会议桌、沙发)
|
||
- **Datawhale 品牌元素**:
|
||
- 欢迎标识(顶部入口)
|
||
- 主 Logo 展示(右侧展示区)
|
||
- 成就墙(右下方)
|
||
- 地板水印(场景中央)
|
||
|
||
### 场景导览路线
|
||
|
||
1. **起点** - 欢迎标识区域
|
||
2. 按 **D** 向右 → 主展示区大 Logo
|
||
3. 按 **S** 向下 → 成就墙 Logo
|
||
4. 按 **Q** 缩小 → 地板水印
|
||
5. 按 **R** 重置 → 回到起点
|
||
|
||
## 🧪 单元测试详情
|
||
|
||
### 测试覆盖范围
|
||
|
||
**✅ 消息协议测试**:
|
||
- 属性测试:数据序列化往返(100次迭代)
|
||
- 单元测试:消息创建和验证
|
||
|
||
**✅ 游戏状态管理测试**:
|
||
- 状态转换(LOGIN → CHARACTER_CREATION → IN_GAME)
|
||
- 数据持久化(保存/加载)
|
||
- JSON 序列化
|
||
|
||
**✅ 角色系统测试**:
|
||
- 属性测试:角色 ID 唯一性(100次迭代)
|
||
- 角色创建、移动、碰撞检测
|
||
- 位置插值和动画
|
||
|
||
**✅ 输入系统测试**:
|
||
- 属性测试:设备类型检测(100次迭代)
|
||
- 键盘输入响应
|
||
- 虚拟摇杆(移动端)
|
||
|
||
### 属性测试
|
||
|
||
项目包含基于属性的测试(Property-Based Testing):
|
||
|
||
**运行属性测试**:
|
||
1. 打开 `tests/RunPropertyTests.tscn`
|
||
2. 按 F6 运行
|
||
3. 查看详细的测试报告
|
||
|
||
**测试内容**:
|
||
- 键盘输入响应(100+ 次迭代)
|
||
- 服务器更新同步(50 次迭代)
|
||
- 在线/离线角色显示(各 50 次迭代)
|
||
|
||
## 🔧 故障排除
|
||
|
||
### 常见问题
|
||
|
||
**Q: 角色不显示?**
|
||
A:
|
||
- 检查控制台错误
|
||
- 确保游戏窗口是激活状态
|
||
- 尝试重新运行场景
|
||
|
||
**Q: 角色不移动?**
|
||
A:
|
||
- 点击游戏窗口确保焦点
|
||
- 检查键盘输入是否正常
|
||
- 查看控制台错误信息
|
||
|
||
**Q: 相机不跟随?**
|
||
A:
|
||
- 等待几秒让相机初始化
|
||
- 移动角色后相机应该开始跟随
|
||
|
||
**Q: 测试失败?**
|
||
A:
|
||
- 查看控制台详细错误信息
|
||
- 确保所有文件已保存
|
||
- 检查 Godot 版本是否为 4.5.1+
|
||
|
||
### 测试检查清单
|
||
|
||
**场景测试**:
|
||
- [ ] Datawhale 办公室场景正确加载
|
||
- [ ] 场景尺寸为 2000x1500
|
||
- [ ] 墙壁和家具正确显示
|
||
- [ ] 品牌元素正确显示(4个 Logo 位置)
|
||
- [ ] 相机限制正确设置
|
||
|
||
**功能测试**:
|
||
- [ ] 角色移动响应(WASD)
|
||
- [ ] 碰撞检测正常
|
||
- [ ] 相机跟随角色
|
||
- [ ] 交互功能正常(E 键)
|
||
|
||
**单元测试**:
|
||
- [ ] 所有角色数据测试通过
|
||
- [ ] 所有控制器测试通过
|
||
- [ ] 所有状态管理测试通过
|
||
- [ ] 所有输入处理测试通过
|
||
- [ ] 所有消息协议测试通过
|
||
|
||
## 🎯 测试目标
|
||
|
||
### 主要目标
|
||
1. **核心功能** - 角色移动和相机跟随
|
||
2. **碰撞检测** - 角色不能穿墙
|
||
3. **场景渲染** - 所有元素正确显示
|
||
|
||
### 次要目标
|
||
4. **品牌展示** - Datawhale Logo 正确显示
|
||
5. **性能** - 游戏流畅运行
|
||
6. **系统稳定性** - 无错误和崩溃
|
||
|
||
## 📊 预期性能
|
||
|
||
- **帧率**: 30+ FPS
|
||
- **内存使用**: < 100MB
|
||
- **启动时间**: < 5 秒
|
||
- **响应延迟**: < 50ms
|
||
|
||
## 🚀 测试完成后
|
||
|
||
测试成功后,你可以:
|
||
|
||
1. **继续开发** - 实现更多游戏功能
|
||
2. **启动服务器** - 测试多人功能
|
||
3. **Web 导出** - 部署到网页版
|
||
|
||
## 📝 反馈
|
||
|
||
如果发现任何问题或有改进建议,请记录下来:
|
||
|
||
- 具体的错误信息
|
||
- 重现步骤
|
||
- 预期行为 vs 实际行为
|
||
- 系统环境信息
|
||
|
||
---
|
||
|
||
**准备好了吗?**
|
||
|
||
打开 `scenes/TestGameplay.tscn`,按 F6,开始测试!🎮 |