Files

测试目录说明

目录结构

test/
├── unit/           # 单元测试
├── integration/    # 集成测试  
├── e2e/            # 端到端测试
└── README.md       # 测试说明文档

测试类型说明

单元测试 (unit)

  • 针对单个函数、模块或类的测试
  • 使用 Jest 或 Mocha + Chai 框架
  • 测试文件命名规范:[filename].test.js[filename].spec.js
  • 覆盖率要求:≥ 80%

集成测试 (integration)

  • 测试多个模块之间的交互
  • 包括API接口测试、数据库操作测试等
  • 使用 Supertest 进行HTTP接口测试
  • 使用 Jest 或 Mocha 框架

端到端测试 (e2e)

  • 完整的用户流程测试
  • 使用 Cypress 或 Playwright 框架
  • 模拟真实用户操作场景
  • 包括UI交互测试和业务流程测试

测试框架配置

后端测试配置

// jest.config.js (backend)
module.exports = {
  testEnvironment: 'node',
  testMatch: ['**/test/**/*.test.js'],
  collectCoverageFrom: ['src/**/*.js'],
  coverageDirectory: 'coverage',
};

前端测试配置

// jest.config.js (frontend)
module.exports = {
  testEnvironment: 'jsdom',
  testMatch: ['**/test/**/*.test.js'],
  moduleNameMapping: {
    '^@/(.*)$': '<rootDir>/src/$1',
  },
};

运行测试

运行所有测试

npm test

运行单元测试

npm run test:unit

运行集成测试

npm run test:integration

运行端到端测试

npm run test:e2e

生成测试覆盖率报告

npm run test:coverage

测试最佳实践

  1. 测试命名: 使用描述性的测试名称,说明测试场景和预期结果
  2. 测试隔离: 每个测试应该独立运行,不依赖其他测试的状态
  3. 断言明确: 使用明确的断言语句,避免模糊的测试验证
  4. 错误处理: 测试应该验证错误情况和边界条件
  5. 性能考虑: 测试运行时间应该合理,避免过长的测试套件

持续集成

测试应该集成到CI/CD流程中

  • 每次提交触发测试运行
  • 测试失败阻止部署
  • 生成测试覆盖率报告
  • 集成代码质量检查工具

相关文档