# tests 分层测试目录,包含单元测试、集成测试和端到端测试。 ## WHERE TO LOOK | Task | Location | Notes | |------|----------|-------| | 单元测试 | `unit/` | Vue组件和游戏逻辑测试 | | 集成测试 | `integration/` | API接口测试 | | 端到端测试 | `e2e/` | Playwright浏览器测试 | | Java测试 | `../zxyj-backend/src/test/` | Spring Boot后端测试 | ## STRUCTURE ``` tests/ ├── unit/ # 单元测试 │ └── games/ # 小游戏逻辑测试 ├── integration/ # 集成测试 │ └── *.spec.js # API接口测试 ├── e2e/ # 端到端测试 │ └── *.spec.js # Playwright浏览器测试 └── AGENTS.md # 本文件 ``` ## CONVENTIONS - **命名约定:** `*.spec.js` 用于JavaScript测试 - **测试结构:** 使用 `describe/it` 语法 - **断言库:** Jest风格断言 - **API测试:** 直接调用后端接口,验证响应 - **E2E测试:** 使用Playwright进行浏览器自动化 ## TEST TYPES ### 单元测试 (`unit/`) - **目标:** Vue组件、游戏逻辑、工具函数 - **工具:** Jest, @vue/test-utils - **示例:** `unit/games/1a2b.spec.js` - 游戏逻辑测试 - **特点:** 隔离测试,不依赖外部服务 ### 集成测试 (`integration/`) - **目标:** API接口、服务间调用 - **工具:** fetch/axios, 真实HTTP请求 - **示例:** `integration/mini-games-api.spec.js` - 游戏API测试 - **特点:** 测试接口契约,依赖运行中的后端 ### 端到端测试 (`e2e/`) - **目标:** 完整用户流程,浏览器交互 - **工具:** Playwright - **示例:** `e2e/mini-games-playwright.spec.js` - 游戏流程测试 - **特点:** 模拟真实用户操作,覆盖全链路 ### Java后端测试 - **位置:** `zxyj-backend/src/test/java/` - **工具:** JUnit 5, Mockito, Spring Boot Test - **示例:** `GuideFamilyTaskControllerTest.java` - 控制器测试 - **特点:** Spring上下文,MockMvc测试 ## ANTI-PATTERNS - **DO NOT** 写无法运行的测试(缺少依赖/配置) - **DO NOT** 在集成测试中使用硬编码token - **DO NOT** E2E测试依赖特定环境数据 - **NEVER** 跳过测试就直接部署 - **NEVER** 写没有断言的测试 ## CURRENT STATE ### ✅ 已配置 - 后端: Maven + Spring Boot Test (1个测试类) - 分层测试目录结构 - Playwright E2E测试框架 ### ⚠️ 需要完善 - 前端测试配置和依赖缺失 - 测试运行脚本不完整 - 测试覆盖率较低 - 缺少测试数据准备和清理 ### ❌ 缺失 - Jest/Playwright配置文件 - npm测试脚本 - 数据库测试夹具 - 持续集成测试流水线 ## COMMANDS ```bash # 后端测试 cd zxyj-backend mvn test # Playwright E2E测试 (需要先安装依赖) npx playwright test tests/e2e/mini-games-playwright.spec.js # 目前前端测试无法直接运行,需要先配置 ``` ## NOTES - 测试文件存在但基础设施不完整 - 部分测试为草稿/占位性质 - 集成测试需要运行中的后端服务(8080端口) - 建议优先完善关键业务链路测试