# 测试指南 本项目支持**无数据库和无邮件服务器**的测试模式,让你可以快速验证所有功能! ## 🚀 快速开始 ### 1. 环境配置 ```bash # 复制环境配置文件 cp .env.example .env ``` 默认配置已经设置为测试模式,无需修改即可使用。 ### 2. 启动服务 ```bash # 安装依赖 npm install # 启动开发服务器 npm run dev ``` ### 3. 运行测试 **Windows (PowerShell):** ```powershell .\test-api.ps1 ``` **Linux/macOS:** ```bash ./test-api.sh ``` **自定义参数:** ```bash # Windows .\test-api.ps1 -BaseUrl "http://localhost:3000" -TestEmail "custom@example.com" # Linux/macOS ./test-api.sh "http://localhost:3000" "custom@example.com" ``` ## 🧪 测试功能 测试脚本会验证以下功能: - ✅ **邮箱验证码发送** - 生成6位数验证码 - ✅ **邮箱验证码验证** - 验证码校验和清理 - ✅ **用户注册** - 完整的用户注册流程 - ✅ **用户登录** - 用户名/邮箱/手机号登录 ## 🔧 测试模式特性 - 🗄️ **Redis 文件存储** - 使用 `redis-data/redis.json` 存储验证码 - 📧 **邮件测试模式** - 邮件内容输出到控制台,无需真实SMTP - 💾 **内存用户存储** - 无需数据库,用户数据存储在内存中 - 🔄 **自动切换** - 根据配置自动选择存储模式 ## 📊 单元测试 ```bash # 运行所有单元测试 npm test # 监听模式 npm run test:watch # 生成覆盖率报告 npm run test:cov ``` ## 🌐 生产环境配置 要切换到生产环境,编辑 `.env` 文件: ```bash # 启用数据库(取消注释并填入真实数据) DB_HOST=your_mysql_host DB_PORT=3306 DB_USERNAME=your_db_username DB_PASSWORD=your_db_password DB_NAME=your_db_name # 启用真实Redis(取消注释并设置) USE_FILE_REDIS=false REDIS_HOST=your_redis_host REDIS_PORT=6379 REDIS_PASSWORD=your_redis_password # 启用邮件服务(取消注释并填入真实数据) EMAIL_HOST=smtp.gmail.com EMAIL_PORT=587 EMAIL_USER=your_email@gmail.com EMAIL_PASS=your_app_password EMAIL_FROM="Whale Town Game" # 生产环境设置 NODE_ENV=production LOG_LEVEL=info ``` ## 🔍 故障排除 ### 服务启动失败 - 检查端口3000是否被占用 - 确认Node.js版本 >= 18.0.0 - 运行 `npm install` 重新安装依赖 ### 测试脚本执行失败 - 确认服务器正在运行 - 检查防火墙设置 - 在Linux/macOS上确保脚本有执行权限:`chmod +x test-api.sh` ### Redis文件存储问题 - 检查 `redis-data` 目录权限 - 确认 `USE_FILE_REDIS=true` 设置正确 ### 邮件测试模式问题 - 确认邮件配置为注释状态 - 检查服务器控制台日志输出 ## 📝 测试数据 测试完成后,你可以查看: - `redis-data/redis.json` - 验证码存储数据 - 服务器控制台 - 邮件内容输出 - 测试脚本输出 - API响应结果 ## 🎯 下一步 - 查看 [API 文档](http://localhost:3000/api-docs) 了解更多接口 - 阅读 [开发规范](./docs/backend_development_guide.md) 开始开发 - 使用 [AI 辅助指南](./docs/AI辅助开发规范指南.md) 提高开发效率