# Story 006.001: 迁移 mini-test-demo 中现成的测试环境 ## Status Draft ## Story **As a** 开发人员, **I want** 迁移 mini-test-demo 中现成的测试环境到 mini 项目, **so that** 小程序项目拥有完整的测试环境配置,能够运行基础示例测试,确保代码质量和稳定性 ## Acceptance Criteria 1. 在 mini/package.json 中添加测试脚本 2. 复制 mini-test-demo 中的 jest.config.js 配置文件 3. 复制 mini-test-demo 中的 tests 目录结构和 setup.ts 4. 复制 Taro 组件 mock 和测试依赖配置 5. 复制基础示例测试文件 6. 验证测试环境正常运行 7. 不创建新的组件/页面测试(当前为 starter 项目) ## Tasks / Subtasks - [ ] 在 mini/package.json 中添加测试脚本 (AC: 1) - [ ] 从 mini-test-demo/mini/package.json 复制测试相关脚本 - [ ] 添加 "test": "jest" 脚本 - [ ] 添加 "test:watch": "jest --watch" 脚本 - [ ] 添加 "test:coverage": "jest --coverage" 脚本 - [ ] 复制 mini-test-demo 中的 jest.config.js 配置文件 (AC: 2) - [ ] 复制 mini-test-demo/mini/jest.config.js 到 mini/jest.config.js - [ ] 验证配置文件路径映射正确 - [ ] 确保模块名称映射与 mini 项目结构匹配 - [ ] 复制 mini-test-demo 中的 tests 目录结构和 setup.ts (AC: 3) - [ ] 创建 mini/tests/ 目录 - [ ] 复制 mini-test-demo/mini/tests/setup.ts - [ ] 复制 tests/__mocks__/ 目录结构 - [ ] 验证 setup.ts 中的配置正确 - [ ] 复制 Taro 组件 mock 和测试依赖配置 (AC: 4) - [ ] 复制 tests/__mocks__/taroMock.ts - [ ] 复制 tests/__mocks__/styleMock.js - [ ] 复制 tests/__mocks__/fileMock.js - [ ] 从 mini-test-demo/mini/package.json 复制测试相关依赖 - [ ] 复制基础示例测试文件 (AC: 5) - [ ] 复制 tests/example.test.tsx - [ ] 复制 tests/components/Button.test.tsx - [ ] 复制 tests/components/AreaPicker.test.tsx - [ ] 确保测试文件路径映射正确 - [ ] 验证测试环境正常运行 (AC: 6) - [ ] 运行 "pnpm test" 验证测试执行 - [ ] 运行 "pnpm test:coverage" 验证覆盖率报告 - [ ] 确保所有基础示例测试通过 - [ ] 验证 Taro 组件 mock 正常工作 - [ ] 不创建新的组件/页面测试 (AC: 7) - [ ] 仅迁移 mini-test-demo 中现有的测试文件 - [ ] 不创建针对 mini 项目特定组件的测试 - [ ] 保持 starter 项目的轻量级特性 ## Dev Notes ### 技术栈信息 [Source: architecture/tech-stack.md] - **测试框架**: Jest + Testing Library - **运行时**: Node.js 20.19.2 - **小程序框架**: Taro 4.1.4 + React 18 - **类型系统**: TypeScript 5.4.5 - **构建工具**: Webpack 5.91.0 ### 项目结构信息 [Source: architecture/source-tree.md] - **mini项目位置**: /mnt/code/155-138-template-6/mini/ - **参考模板位置**: /mnt/code/155-138-template-6/mini-test-demo/mini/ - **测试目录结构**: - tests/ - 测试根目录 - tests/__mocks__/ - Mock 文件目录 - tests/components/ - 组件测试 - tests/pages/ - 页面测试 - tests/unit/ - 单元测试 - **配置文件**: - jest.config.js - Jest 配置 - tests/setup.ts - 测试环境设置 ### 测试策略信息 [Source: mini-test-demo/mini/jest.config.js] - **测试匹配模式**: tests/**/*.spec.{ts,tsx}, tests/**/*.test.{ts,tsx} - **测试环境**: jsdom - **模块映射**: - @/ -> src/ - ~/ -> tests/ - @tarojs/taro -> tests/__mocks__/taroMock.ts - **覆盖率收集**: src/**/*.{ts,tsx} - **忽略路径**: /node_modules/, /dist/, /coverage/ ### Mock 配置信息 [Source: mini-test-demo/mini/tests/__mocks__/] - **taroMock.ts**: Taro 框架组件的完整 mock - **styleMock.js**: CSS/LESS/SCSS 样式文件的 mock - **fileMock.js**: 图片和静态资源文件的 mock ### 需要复制的测试依赖 [Source: mini-test-demo/mini/package.json] - **测试框架**: jest, ts-jest, @types/jest - **测试工具**: @testing-library/react, @testing-library/jest-dom - **测试环境**: jest-environment-jsdom - **类型定义**: @types/testing-library__jest-dom ### 测试文件迁移清单 - **配置文件**: - jest.config.js - tests/setup.ts - **Mock 文件**: - tests/__mocks__/taroMock.ts - tests/__mocks__/styleMock.js - tests/__mocks__/fileMock.js - **基础测试文件**: - tests/example.test.tsx - tests/components/Button.test.tsx - tests/components/AreaPicker.test.tsx ### Testing - **测试文件位置**: mini/tests/ - **测试框架**: Jest + Testing Library - **覆盖率要求**: 基础示例测试通过率 100% - **测试标准**: - 测试环境配置完整 - 所有基础示例测试通过 - Taro 组件 mock 正常工作 - 测试脚本可正常运行 - 不创建新的测试用例 ## Change Log | Date | Version | Description | Author | |------|---------|-------------|--------| | 2025-11-10 | 1.0 | 初始故事创建 | Bob (Scrum Master) | ## Dev Agent Record ### Agent Model Used ### Debug Log References ### Completion Notes List ### File List ## QA Results