# 前端功能点测试覆盖表 > 基于 Vue 3 + Vite + Pinia 重构后的前端,对照原始 vanilla JS 单文件实现的所有功能点。 ## 测试类型说明 - **e2e** = Cypress E2E 测试 (真实浏览器 + 后端 API) - **none** = 尚未覆盖 --- ## 1. 应用加载 (App) | 功能点 | 测试 | 文件 | |--------|------|------| | 未登录显示登录遮罩 | e2e | app-load.cy.js | | 登录框有密码输入和按钮 | e2e | app-load.cy.js | | 错误密码显示错误提示 | e2e | app-load.cy.js | | 登录后显示主界面 | e2e | app-load.cy.js | | 显示 7 个导航 Tab | e2e | app-load.cy.js | | 菜单按钮打开下拉菜单 | e2e | app-load.cy.js | | 下拉菜单包含导出/改密/备份/退出 | e2e | app-load.cy.js | ## 2. 认证与登录 (Auth) | 功能点 | 测试 | 文件 | |--------|------|------| | 过期 session 跳转登录 | e2e | auth-flow.cy.js | | 回车键提交登录 | e2e | auth-flow.cy.js | | 正确密码登录并存储 session | e2e | auth-flow.cy.js | | 退出登录清除 session | e2e | auth-flow.cy.js | | Session 刷新后保持 | e2e | auth-flow.cy.js | | 修改密码 | none | — | ## 3. 导航与路由 (Navigation) | 功能点 | 测试 | 文件 | |--------|------|------| | 默认 Tab 为随手记 | e2e | navigation.cy.js | | 点击 Tab 跳转正确路由 | e2e | navigation.cy.js | | 直接 URL 访问各路由 | e2e | navigation.cy.js | | 浏览器后退按钮 | e2e | navigation.cy.js | | 未知路由 SPA 回退 | e2e | navigation.cy.js | | Sleep Buddy 路由 | e2e | navigation.cy.js | ## 4. 随手记 (Notes) | 功能点 | 测试 | 文件 | |--------|------|------| | 显示输入区和发送按钮 | e2e | notes-flow.cy.js | | 显示 8 个标签按钮 | e2e | notes-flow.cy.js | | 切换标签选中状态 | e2e | notes-flow.cy.js | | 创建笔记(点击按钮) | e2e | notes-flow.cy.js | | 创建带标签的笔记 | e2e | notes-flow.cy.js | | 回车键创建笔记 | e2e | notes-flow.cy.js | | 创建后清空输入框 | e2e | notes-flow.cy.js | | 不创建空笔记 | e2e | notes-flow.cy.js | | 搜索过滤笔记 | e2e | notes-flow.cy.js | | 按标签筛选笔记 | e2e | notes-flow.cy.js | | 编辑笔记 | e2e | notes-flow.cy.js | | 删除笔记 | e2e | notes-flow.cy.js | | 显示空状态提示 | e2e | notes-flow.cy.js | | 显示笔记时间 | e2e | notes-flow.cy.js | | 自动识别内容归档文档 | none | — | ## 5. 待办事项 (Tasks) | 功能点 | 测试 | 文件 | |--------|------|------| | 显示 3 个子 Tab(待办/目标/清单) | e2e | tasks-flow.cy.js | | 默认子 Tab 为待办 | e2e | tasks-flow.cy.js | | 子 Tab 切换 | e2e | tasks-flow.cy.js | | 收集箱输入 | e2e | tasks-flow.cy.js | | 添加收集箱条目 | e2e | tasks-flow.cy.js | | 收集箱分配到象限按钮 | e2e | tasks-flow.cy.js | | 移入四象限 | e2e | tasks-flow.cy.js | | 显示 4 个象限 | e2e | tasks-flow.cy.js | | 直接添加到象限 | e2e | tasks-flow.cy.js | | 切换完成状态 | e2e | tasks-flow.cy.js | | 删除待办 | e2e | tasks-flow.cy.js | | 搜索过滤待办 | e2e | tasks-flow.cy.js | | 创建目标 | e2e | tasks-flow.cy.js | | 删除目标 | e2e | tasks-flow.cy.js | | 创建清单 | e2e | tasks-flow.cy.js | | 添加清单项目 | e2e | tasks-flow.cy.js | | 切换清单项完成 | e2e | tasks-flow.cy.js | | 删除清单 | e2e | tasks-flow.cy.js | | 目标打卡日历 | none | — | ## 6. 提醒 (Reminders) | 功能点 | 测试 | 文件 | |--------|------|------| | 显示页面和新增按钮 | e2e | reminders-flow.cy.js | | 打开新增表单 | e2e | reminders-flow.cy.js | | 创建带时间的提醒 | e2e | reminders-flow.cy.js | | 不同重复选项 | e2e | reminders-flow.cy.js | | 切换启用/禁用 | e2e | reminders-flow.cy.js | | 删除提醒 | e2e | reminders-flow.cy.js | | 取消按钮关闭表单 | e2e | reminders-flow.cy.js | | 空状态提示 | e2e | reminders-flow.cy.js | | 浏览器通知推送 | none | — | | Service Worker 后台通知 | none | — | ## 7. 健康打卡 (Body - Health) | 功能点 | 测试 | 文件 | |--------|------|------| | 显示 4 个子 Tab | e2e | body-health.cy.js | | 默认健康打卡 Tab | e2e | body-health.cy.js | | 显示今日日期 | e2e | body-health.cy.js | | 添加健康项目到池 | e2e | body-health.cy.js | | 切换项目到月计划 | e2e | body-health.cy.js | | 打卡项目 | e2e | body-health.cy.js | | 取消打卡 | e2e | body-health.cy.js | | 删除池中项目 | e2e | body-health.cy.js | | 空状态提示 | e2e | body-health.cy.js | | 月度日历视图 | none | — | | 年度热力图 | none | — | | 健康日记 | none | — | ## 8. 睡眠记录 (Body - Sleep) | 功能点 | 测试 | 文件 | |--------|------|------| | 显示输入框 | e2e | body-sleep.cy.js | | HH:MM 格式记录 | e2e | body-sleep.cy.js | | 中文格式记录(10点半) | e2e | body-sleep.cy.js | | 无法识别时显示错误 | e2e | body-sleep.cy.js | | 删除睡眠记录 | e2e | body-sleep.cy.js | | 显示记录明细表 | e2e | body-sleep.cy.js | | 空状态提示 | e2e | body-sleep.cy.js | | 睡眠趋势图表 (Canvas) | none | — | | 月度切换 | none | — | | 年度热力图 | none | — | | 目标入睡时间 | none | — | | "我去睡觉啦"按钮 | none | — | ## 9. 健身记录 (Body - Gym) | 功能点 | 测试 | 文件 | |--------|------|------| | 显示页面和新增按钮 | e2e | body-gym.cy.js | | 打开新增表单 | e2e | body-gym.cy.js | | 创建健身记录 | e2e | body-gym.cy.js | | 删除健身记录 | e2e | body-gym.cy.js | | 取消关闭表单 | e2e | body-gym.cy.js | ## 10. 经期记录 (Body - Period) | 功能点 | 测试 | 文件 | |--------|------|------| | 显示页面和新增按钮 | e2e | body-period.cy.js | | 打开新增表单 | e2e | body-period.cy.js | | 创建经期记录(有结束日期) | e2e | body-period.cy.js | | 创建进行中记录(无结束日期) | e2e | body-period.cy.js | | 删除经期记录 | e2e | body-period.cy.js | | 经期周期预测 | none | — | ## 11. 音乐打卡 (Music) | 功能点 | 测试 | 文件 | |--------|------|------| | 显示今日日期 | e2e | music-flow.cy.js | | 显示练习项目区 | e2e | music-flow.cy.js | | 添加音乐项目 | e2e | music-flow.cy.js | | 切换到月计划 | e2e | music-flow.cy.js | | 打卡练习 | e2e | music-flow.cy.js | | 取消打卡 | e2e | music-flow.cy.js | | 删除项目 | e2e | music-flow.cy.js | | 空状态提示 | e2e | music-flow.cy.js | | 月度日历视图 | none | — | | 年度热力图 | none | — | ## 12. 个人文档 (Docs) | 功能点 | 测试 | 文件 | |--------|------|------| | 显示页面头部和描述 | e2e | docs-flow.cy.js | | 显示新建文档按钮 | e2e | docs-flow.cy.js | | 打开新建表单 | e2e | docs-flow.cy.js | | 创建文档 | e2e | docs-flow.cy.js | | 新文档显示 0 条 | e2e | docs-flow.cy.js | | 点击打开文档详情 | e2e | docs-flow.cy.js | | 关闭文档详情 | e2e | docs-flow.cy.js | | 编辑文档信息 | e2e | docs-flow.cy.js | | 删除文档 | e2e | docs-flow.cy.js | | 取消不保存 | e2e | docs-flow.cy.js | | 图标选择器 | e2e | docs-flow.cy.js | | 提取规则下拉 | e2e | docs-flow.cy.js | | 文档条目添加 | none | — (API 层已覆盖) | | 文档条目删除 | none | — (API 层已覆盖) | ## 13. 日程规划 (Planning - Schedule) | 功能点 | 测试 | 文件 | |--------|------|------| | 显示 3 个子 Tab | e2e | planning-schedule.cy.js | | 默认日程子 Tab | e2e | planning-schedule.cy.js | | 显示模块池和时间线 | e2e | planning-schedule.cy.js | | 显示 18 个时间段 (6-23) | e2e | planning-schedule.cy.js | | 日期导航 | e2e | planning-schedule.cy.js | | 切换上/下一天 | e2e | planning-schedule.cy.js | | 添加活动模块 | e2e | planning-schedule.cy.js | | 颜色选择器 | e2e | planning-schedule.cy.js | | 删除活动模块 | e2e | planning-schedule.cy.js | | 清空当天日程 | e2e | planning-schedule.cy.js | | 模块可拖拽 | e2e | planning-schedule.cy.js | | 拖拽放置到时间段 | none | — (Cypress 不支持原生 drag) | | 导出日程为文本 | none | — | ## 14. 每周模板 (Planning - Template) | 功能点 | 测试 | 文件 | |--------|------|------| | 显示 7 天按钮 | e2e | planning-template.cy.js | | 默认选中天 | e2e | planning-template.cy.js | | 切换不同天 | e2e | planning-template.cy.js | | 显示模板提示 | e2e | planning-template.cy.js | | 时间线渲染 | none | — | | 模板编辑保存 | none | — | ## 15. 周回顾 (Planning - Review) | 功能点 | 测试 | 文件 | |--------|------|------| | 显示回顾表单 | e2e | planning-review.cy.js | | 表单有 3 个区域 | e2e | planning-review.cy.js | | 保存回顾 | e2e | planning-review.cy.js | | 历史回顾标题 | e2e | planning-review.cy.js | | 历史展开/折叠 | e2e | planning-review.cy.js | ## 16. 睡眠打卡 (Sleep Buddy) | 功能点 | 测试 | 文件 | |--------|------|------| | 未登录显示登录表单 | e2e | sleep-buddy.cy.js | | 登录表单有用户名密码 | e2e | sleep-buddy.cy.js | | 登录/注册模式切换 | e2e | sleep-buddy.cy.js | | 注册显示确认密码 | e2e | sleep-buddy.cy.js | | 密码不一致报错 | e2e | sleep-buddy.cy.js | | 注册后自动登录 | e2e | sleep-buddy.cy.js | | 登录后显示主界面 | e2e | sleep-buddy.cy.js | | 显示目标时间 | e2e | sleep-buddy.cy.js | | 显示记录输入 | e2e | sleep-buddy.cy.js | | 记录睡眠时间 | e2e | sleep-buddy.cy.js | | 无法识别报错 | e2e | sleep-buddy.cy.js | | "我去睡觉啦"按钮 | e2e | sleep-buddy.cy.js | | 用户菜单退出 | e2e | sleep-buddy.cy.js | | 退出返回登录 | e2e | sleep-buddy.cy.js | | 数据对比统计 | none | — | | 睡眠趋势图 (Canvas) | none | — | | 修改目标时间 | none | — | | 删除记录 | none | — (API 已覆盖) | ## 17. API 健康检查 | 功能点 | 测试 | 文件 | |--------|------|------| | GET /api/notes 返回数组 | e2e | api-health.cy.js | | GET /api/todos 返回数组 | e2e | api-health.cy.js | | GET /api/inbox 返回数组 | e2e | api-health.cy.js | | GET /api/reminders 返回数组 | e2e | api-health.cy.js | | GET /api/goals 返回数组 | e2e | api-health.cy.js | | GET /api/checklists 返回数组 | e2e | api-health.cy.js | | GET /api/sleep 返回数组 | e2e | api-health.cy.js | | GET /api/gym 返回数组 | e2e | api-health.cy.js | | GET /api/period 返回数组 | e2e | api-health.cy.js | | GET /api/docs 返回数组 | e2e | api-health.cy.js | | GET /api/bugs 返回数组 | e2e | api-health.cy.js | | GET /api/reviews 返回数组 | e2e | api-health.cy.js | | GET /api/schedule-modules 返回数组 | e2e | api-health.cy.js | | GET /api/schedule-slots 返回数组 | e2e | api-health.cy.js | | GET /api/weekly-template 返回数组 | e2e | api-health.cy.js | | GET /api/health-items 返回数组 | e2e | api-health.cy.js | | GET /api/health-plans 返回数组 | e2e | api-health.cy.js | | GET /api/health-checks 返回数组 | e2e | api-health.cy.js | | GET /api/backups 返回数组 | e2e | api-health.cy.js | | GET /api/sleep-buddy 返回对象 | e2e | api-health.cy.js | | POST /api/login 错误密码 401 | e2e | api-health.cy.js | ## 18. API CRUD 操作 | 功能点 | 测试 | 文件 | |--------|------|------| | Notes: 创建/删除 | e2e | api-crud.cy.js | | Todos: 创建/更新(upsert)/删除 | e2e | api-crud.cy.js | | Inbox: 创建/清空 | e2e | api-crud.cy.js | | Reminders: 创建/删除 | e2e | api-crud.cy.js | | Goals: 创建/更新 | e2e | api-crud.cy.js | | Checklists: 创建 | e2e | api-crud.cy.js | | Sleep: 创建/Upsert/删除 | e2e | api-crud.cy.js | | Gym: 创建 | e2e | api-crud.cy.js | | Period: 创建 | e2e | api-crud.cy.js | | Docs: 创建 + 创建条目 + 验证嵌套 | e2e | api-crud.cy.js | | Bugs: 创建/删除 | e2e | api-crud.cy.js | | Schedule Modules: 创建 | e2e | api-crud.cy.js | | Schedule Slots: 创建 | e2e | api-crud.cy.js | | Reviews: 创建 | e2e | api-crud.cy.js | | Health Items: 创建 | e2e | api-crud.cy.js | | Health Plans: 保存 | e2e | api-crud.cy.js | | Health Checks: 切换 | e2e | api-crud.cy.js | | Backup: 触发备份 | e2e | api-crud.cy.js | ## 19. 响应式布局 | 功能点 | 测试 | 文件 | |--------|------|------| | 手机端 (375px) 渲染 | e2e | responsive.cy.js | | 平板端 (768px) 渲染 | e2e | responsive.cy.js | | 桌面端 (1280px) 渲染 | e2e | responsive.cy.js | | 宽屏 (1920px) 渲染 | e2e | responsive.cy.js | | 手机端 Tab 可滚动 | e2e | responsive.cy.js | | 手机端四象限垂直堆叠 | e2e | responsive.cy.js | | 手机端日程垂直堆叠 | e2e | responsive.cy.js | ## 20. 性能 | 功能点 | 测试 | 文件 | |--------|------|------| | 页面加载 < 5s | e2e | performance.cy.js | | API 响应 < 1s | e2e | performance.cy.js | | Tab 切换瞬时 | e2e | performance.cy.js | | 批量数据不崩溃 | e2e | performance.cy.js | --- ## 覆盖统计 | 指标 | 数量 | |------|------| | **功能点总数** | ~148 | | **已覆盖功能点** | ~126 | | **Cypress E2E 测试** | **196** | | **测试文件数** | **20** | | **功能点覆盖率** | **~85%** | ### 未覆盖的高风险功能 | 优先级 | 功能 | 风险 | 说明 | |--------|------|------|------| | P0 | Canvas 图表渲染 (睡眠趋势) | HIGH | 原版有 Canvas 图表,新版尚未实现 | | P0 | 拖拽放置到时间段 | HIGH | Cypress 不支持原生 HTML5 DnD | | P1 | 浏览器通知推送 | MED | Service Worker + 权限 API | | P1 | 修改密码功能 | MED | 涉及安全敏感操作 | | P1 | 健康/音乐月度日历 | MED | 日历视图尚未完整实现 | | P1 | 年度热力图 | MED | 健康/音乐/睡眠的年度视图 | | P2 | 经期周期预测 | MED | 统计计算逻辑 | | P2 | Sleep Buddy 数据对比 | MED-LOW | 多用户对比统计 | | P2 | 自动识别内容归档文档 | MED-LOW | 关键词匹配 + 提取规则 | | P3 | 导出日程为文本 | LOW | 简单格式化 | | P3 | 健康日记 | LOW | 额外输入区域 | ### 覆盖最充分的功能 1. **API CRUD 全覆盖** — 27 tests 覆盖所有 18 个资源的增删改查 2. **API 健康检查** — 21 tests 验证全部 20+ 端点返回正确格式 3. **随手记 (Notes)** — 14 tests 覆盖创建/编辑/删除/搜索/筛选 4. **待办系统 (Tasks)** — 18 tests 覆盖收集箱/四象限/目标/清单 5. **睡眠打卡 (Sleep Buddy)** — 14 tests 覆盖注册/登录/记录/通知 6. **文档管理 (Docs)** — 12 tests 覆盖创建/编辑/删除/详情/图标 7. **响应式布局** — 7 tests 覆盖 4 种视口