- handlePostpone 增加 next_reminder_date 同步逻辑 - 使用 selector 优化 Zustand 订阅性能 - 添加点击外部关闭菜单机制 - ReminderCard 添加 data-reminder-card 属性 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
31 KiB
31 KiB
提醒卡片右键菜单测试用例
用例统计
| 分类 | 用例数 | P0 | P1 | P2 |
|---|---|---|---|---|
| 右键菜单基础功能 | 8 | 4 | 3 | 1 |
| 日期调整功能 | 10 | 5 | 4 | 1 |
| 优先级功能 | 13 | 5 | 5 | 3 |
| 操作功能 | 6 | 3 | 2 | 1 |
| UI样式验证 | 5 | 1 | 2 | 2 |
| 合计 | 42 | 18 | 16 | 8 |
一、右键菜单基础功能
TC-RM-001 右键点击显示菜单
| 项目 | 内容 |
|---|---|
| 用例标题 | 右键点击提醒卡片显示右键菜单 |
| 测试场景 | 用户在提醒卡片上点击鼠标右键,验证菜单正常显示 |
| 前置条件 | 1. 用户已登录 2. 提醒列表中存在至少一条提醒 |
| 测试步骤 | 1. 进入提醒列表页面 2. 将鼠标悬停在任意提醒卡片上 3. 点击鼠标右键 |
| 预期结果 | 1. 右键菜单在鼠标点击位置显示 2. 菜单包含三个功能区域:日期调整、优先级、操作 3. 菜单样式正常,无遮挡或截断 |
| 优先级 | P0 |
| 状态 | 待测试 |
TC-RM-002 左键点击其他区域关闭菜单
| 项目 | 内容 |
|---|---|
| 用例标题 | 左键点击菜单外部区域关闭菜单 |
| 测试场景 | 右键菜单打开后,点击其他区域验证菜单关闭 |
| 前置条件 | 1. 用户已登录 2. 提醒列表中存在至少一条提醒 3. 右键菜单已打开 |
| 测试步骤 | 1. 右键点击卡片打开菜单 2. 在菜单外的任意位置点击鼠标左键 |
| 预期结果 | 右键菜单立即关闭,界面恢复正常状态 |
| 优先级 | P0 |
| 状态 | 待测试 |
TC-RM-003 点击菜单项后关闭菜单
| 项目 | 内容 |
|---|---|
| 用例标题 | 点击任意菜单项后菜单自动关闭 |
| 测试场景 | 点击菜单中的任意选项后验证菜单是否正确关闭 |
| 前置条件 | 1. 用户已登录 2. 提醒列表中存在至少一条提醒 3. 右键菜单已打开 |
| 测试步骤 | 1. 右键点击卡片打开菜单 2. 点击任意菜单项(如"今日") |
| 预期结果 | 1. 菜单项点击事件触发 2. 右键菜单自动关闭 |
| 优先级 | P0 |
| 状态 | 待测试 |
TC-RM-004 ESC键关闭菜单
| 项目 | 内容 |
|---|---|
| 用例标题 | 按ESC键关闭右键菜单 |
| 测试场景 | 右键菜单打开后,按键盘ESC键验证菜单关闭 |
| 前置条件 | 1. 用户已登录 2. 提醒列表中存在至少一条提醒 3. 右键菜单已打开 |
| 测试步骤 | 1. 右键点击卡片打开菜单 2. 按下键盘ESC键 |
| 预期结果 | 右键菜单立即关闭 |
| 优先级 | P1 |
| 状态 | 待测试 |
TC-RM-005 菜单位置计算正确
| 项目 | 内容 |
|---|---|
| 用例标题 | 右键菜单在点击位置正确显示 |
| 测试场景 | 在不同位置点击右键,验证菜单位置计算 |
| 前置条件 | 1. 用户已登录 2. 提醒列表中存在至少一条提醒 |
| 测试步骤 | 1. 在页面不同位置右键点击多个卡片 2. 记录每次菜单显示位置 |
| 预期结果 | 1. 菜单左上角与鼠标点击位置重合 2. 菜单不超出浏览器可视区域 |
| 优先级 | P1 |
| 状态 | 待测试 |
TC-RM-006 连续右键点击不同卡片
| 项目 | 内容 |
|---|---|
| 用例标题 | 连续右键点击不同卡片时菜单切换 |
| 测试场景 | 快速连续右键点击多个卡片 |
| 前置条件 | 1. 用户已登录 2. 提醒列表中存在至少三条提醒 |
| 测试步骤 | 1. 右键点击第一张卡片打开菜单 2. 不关闭菜单,右键点击第二张卡片 3. 不关闭菜单,右键点击第三张卡片 |
| 预期结果 | 1. 菜单始终显示在最新点击的卡片位置 2. 不会出现多个菜单同时显示 |
| 优先级 | P2 |
| 状态 | 待测试 |
二、日期调整功能
TC-RM-007 调整到今日
| 项目 | 内容 |
|---|---|
| 用例标题 | 日期调整-今日功能验证 |
| 测试场景 | 使用右键菜单将提醒日期调整到今天 |
| 前置条件 | 1. 用户已登录 2. 存在一条非今日的提醒(如明天或更久之后的提醒) |
| 测试步骤 | 1. 右键点击一条非今日的提醒卡片 2. 点击"日期调整"区域的"今日"选项 |
| 预期结果 | 1. 菜单关闭 2. 提醒移动到"今天"分组 3. 卡片上显示的日期更新为今天的日期 4. 数据持久化到后端 |
| 优先级 | P0 |
| 状态 | 待测试 |
TC-RM-008 调整到明日
| 项目 | 内容 |
|---|---|
| 用例标题 | 日期调整-明天功能验证 |
| 测试场景 | 使用右键菜单将提醒日期调整到明天 |
| 前置条件 | 1. 用户已登录 2. 存在一条今天或更久的提醒 |
| 测试步骤 | 1. 右键点击一条非明日的提醒卡片 2. 点击"日期调整"区域的"明天"选项 |
| 预期结果 | 1. 菜单关闭 2. 提醒移动到"明天"分组 3. 卡片上显示的日期更新为明天的日期 4. 数据持久化到后端 |
| 优先级 | P0 |
| 状态 | 待测试 |
TC-RM-009 调整到一周后
| 项目 | 内容 |
|---|---|
| 用例标题 | 日期调整-一周后功能验证 |
| 测试场景 | 使用右键菜单将提醒日期调整到7天后 |
| 前置条件 | 1. 用户已登录 2. 存在一条今天或明天的提醒 |
| 测试步骤 | 1. 右键点击一条提醒卡片 2. 点击"日期调整"区域的"一周后"选项 |
| 预期结果 | 1. 菜单关闭 2. 提醒移动到"更久之后"分组 3. 卡片上显示的日期更新为7天后的日期 4. 数据持久化到后端 |
| 优先级 | P0 |
| 状态 | 待测试 |
TC-RM-010 跨分组移动验证
| 项目 | 内容 |
|---|---|
| 用例标题 | 日期调整后卡片正确移动到目标分组 |
| 测试场景 | 验证日期调整后卡片在分组间的移动逻辑 |
| 前置条件 | 1. 用户已登录 2. 存在一条明天分组的提醒 |
| 测试步骤 | 1. 确认提醒在"明天"分组 2. 右键点击该提醒 3. 选择"今日" |
| 预期结果 | 1. 提醒从"明天"分组消失 2. 提醒出现在"今天"分组 3. 分组计数正确更新 |
| 优先级 | P0 |
| 状态 | 待测试 |
TC-RM-011 日期时间保留验证
| 项目 | 内容 |
|---|---|
| 用例标题 | 日期调整时保留原有时间 |
| 测试场景 | 调整日期时验证时间分量是否保留 |
| 前置条件 | 1. 用户已登录 2. 存在一条带具体时间(如14:30)的提醒 |
| 测试步骤 | 1. 记录提醒的原始时间(如2月5日 14:30) 2. 右键点击该提醒 3. 选择"明日" |
| 预期结果 | 1. 提醒日期更新到明天 2. 时间保留为14:30(显示为2月6日 14:30) |
| 优先级 | P1 |
| 状态 | 待测试 |
TC-RM-012 逾期提醒日期调整
| 项目 | 内容 |
|---|---|
| 用例标题 | 逾期提醒日期调整功能验证 |
| 测试场景 | 对已过期的提醒进行日期调整 |
| 前置条件 | 1. 用户已登录 2. 存在一条已过期的提醒(在"已错过"分组中) |
| 测试步骤 | 1. 进入"已错过"分组 2. 右键点击一条逾期提醒 3. 选择"今日" |
| 预期结果 | 1. 菜单关闭 2. 提醒从"已错过"分组移除 3. 提醒出现在"今天"分组 4. 卡片样式恢复正常(非红色高亮) |
| 优先级 | P1 |
| 状态 | 待测试 |
TC-RM-013 重复提醒日期调整
| 项目 | 内容 |
|---|---|
| 用例标题 | 重复提醒日期调整功能验证 |
| 测试场景 | 对带重复属性的提醒进行日期调整 |
| 前置条件 | 1. 用户已登录 2. 存在一条重复提醒(如每天重复) |
| 测试步骤 | 1. 确认卡片上显示循环图标 2. 右键点击该提醒 3. 选择"明日" |
| 预期结果 | 1. 菜单关闭 2. 提醒移动到明天分组 3. 循环图标保留 4. 重复属性不受影响 |
| 优先级 | P1 |
| 状态 | 待测试 |
TC-RM-014 边界情况-月末日期调整
| 项目 | 内容 |
|---|---|
| 用例标题 | 月末日期调整边界测试 |
| 测试场景 | 在月末附近进行日期调整,验证跨月计算 |
| 前置条件 | 1. 用户已登录 2. 当前日期在月末(如1月30日、1月31日) 3. 存在一条提醒 |
| 测试步骤 | 1. 右键点击任意提醒 2. 选择"一周后" |
| 预期结果 | 1. 正确计算7天后的日期 2. 跨月时月份正确递增 3. 日期显示正确(如1月31日+7天=2月7日) |
| 优先级 | P2 |
| 状态 | 待测试 |
三、优先级功能
TC-RM-015 设置默认优先级
| 项目 | 内容 |
|---|---|
| 用例标题 | 优先级设置-默认 |
| 测试场景 | 将提醒优先级设置为默认状态 |
| 前置条件 | 1. 用户已登录 2. 存在一条提醒 |
| 测试步骤 | 1. 右键点击提醒卡片 2. 点击"优先级"区域的"默认"选项 |
| 预期结果 | 1. 菜单关闭 2. 优先级更新为 none 3. checkbox边框恢复默认样式(rgba(0,0,0,0.15),1px) 4. 优先级名称显示为"默认" 5. 数据持久化 |
| 优先级 | P0 |
| 状态 | 待测试 |
TC-RM-016 设置红色优先级
| 项目 | 内容 |
|---|---|
| 用例标题 | 优先级设置-红色 |
| 测试场景 | 将提醒优先级设置为红色 |
| 前置条件 | 1. 用户已登录 2. 存在一条提醒 |
| 测试步骤 | 1. 右键点击提醒卡片 2. 点击"优先级"区域的"红色"选项 |
| 预期结果 | 1. 菜单关闭 2. 优先级更新为 red 3. checkbox边框变为红色(2px) 4. 数据持久化 |
| 优先级 | P0 |
| 状态 | 待测试 |
TC-RM-017 设置绿色优先级
| 项目 | 内容 |
|---|---|
| 用例标题 | 优先级设置-绿色 |
| 测试场景 | 将提醒优先级设置为绿色 |
| 前置条件 | 1. 用户已登录 2. 存在一条提醒 |
| 测试步骤 | 1. 右键点击提醒卡片 2. 点击"优先级"区域的"绿色"选项 |
| 预期结果 | 1. 菜单关闭 2. 优先级更新为 green 3. checkbox边框变为绿色(2px) 4. 数据持久化 |
| 优先级 | P0 |
| 状态 | 待测试 |
TC-RM-018 设置黄色优先级
| 项目 | 内容 |
|---|---|
| 用例标题 | 优先级设置-黄色 |
| 测试场景 | 将提醒优先级设置为黄色 |
| 前置条件 | 1. 用户已登录 2. 存在一条提醒 |
| 测试步骤 | 1. 右键点击提醒卡片 2. 点击"优先级"区域的"黄色"选项 |
| 预期结果 | 1. 菜单关闭 2. 优先级更新为 yellow 3. checkbox边框变为黄色(2px) 4. 数据持久化 |
| 优先级 | P0 |
| 状态 | 待测试 |
TC-RM-019 优先级切换验证
| 项目 | 内容 |
|---|---|
| 用例标题 | 优先级状态切换功能验证 |
| 测试场景 | 连续切换不同优先级等级 |
| 前置条件 | 1. 用户已登录 2. 存在一条提醒 |
| 测试步骤 | 1. 设置为红色 2. 再次打开菜单 3. 设置为绿色 4. 再次打开菜单 5. 设置为无色 |
| 预期结果 | 1. 每次切换checkbox边框颜色正确变化 2. 无色时边框恢复默认样式 |
| 优先级 | P1 |
| 状态 | 待测试 |
TC-RM-20 checkbox边框样式变化
| 项目 | 内容 |
|---|---|
| 用例标题 | 不同优先级下checkbox边框样式验证 |
| 测试场景 | 验证不同优先级状态下checkbox边框的视觉差异 |
| 前置条件 | 1. 用户已登录 2. 创建4条提醒,分别设置不同优先级 |
| 测试步骤 | 1. 设置提醒A为红色 2. 设置提醒B为绿色 3. 设置提醒C为黄色 4. 设置提醒D为无色 |
| 预期结果 | 1. 红色优先级:边框 #dc2626,2px 2. 绿色优先级:边框 #16a34a,2px 3. 黄色优先级:边框 #ca8a04,2px 4. 无色优先级:边框 rgba(0,0,0,0.15),1px |
| 优先级 | P1 |
| 状态 | 待测试 |
TC-RM-21 优先级在编辑弹窗显示
| 项目 | 内容 |
|---|---|
| 用例标题 | 优先级在编辑弹窗中正确显示 |
| 测试场景 | 点击编辑打开弹窗,验证优先级显示 |
| 前置条件 | 1. 用户已登录 2. 存在一条已设置优先级的提醒 |
| 测试步骤 | 1. 右键点击提醒卡片 2. 点击"编辑"选项 3. 观察编辑弹窗 |
| 预期结果 | 编辑弹窗中显示当前设置的优先级 |
| 优先级 | P1 |
| 状态 | 待测试 |
TC-RM-22 逾期提醒优先级设置
| 项目 | 内容 |
|---|---|
| 用例标题 | 逾期提醒优先级设置功能 |
| 测试场景 | 对已过期的提醒设置优先级 |
| 前置条件 | 1. 用户已登录 2. 存在一条已过期的提醒 |
| 测试步骤 | 1. 进入"已错过"分组 2. 右键点击逾期提醒 3. 设置为红色 |
| 预期结果 | 1. 菜单关闭 2. 优先级更新成功 3. checkbox边框变为红色 |
| 优先级 | P1 |
| 状态 | 待测试 |
TC-RM-23 已完成提醒优先级设置
| 项目 | 内容 |
|---|---|
| 用例标题 | 已完成提醒优先级设置功能 |
| 测试场景 | 对已完成的提醒设置优先级 |
| 前置条件 | 1. 用户已登录 2. 存在一条已完成的提醒 |
| 测试步骤 | 1. 找到已完成的提醒 2. 右键点击 3. 设置为红色 |
| 预期结果 | 1. 菜单关闭 2. 优先级更新成功(即使卡片呈灰色半透明状态) |
| 优先级 | P2 |
| 状态 | 待测试 |
TC-RM-24 优先级数据持久化
| 项目 | 内容 |
|---|---|
| 用例标题 | 优先级设置数据持久化验证 |
| 测试场景 | 验证设置优先级后刷新页面数据是否保留 |
| 前置条件 | 1. 用户已登录 2. 存在一条提醒 |
| 测试步骤 | 1. 设置提醒为红色优先级 2. 刷新浏览器页面 3. 查看该提醒 |
| 预期结果 | 1. 页面刷新后 2. 提醒仍显示红色优先级边框 3. 数据从后端正确加载 |
| 优先级 | P0 |
| 状态 | 待测试 |
四、操作功能
TC-RM-25 点击编辑打开编辑弹窗
| 项目 | 内容 |
|---|---|
| 用例标题 | 右键菜单编辑功能验证 |
| 测试场景 | 通过右键菜单打开编辑弹窗 |
| 前置条件 | 1. 用户已登录 2. 存在一条提醒 |
| 测试步骤 | 1. 右键点击提醒卡片 2. 点击"操作"区域的"编辑"选项 |
| 预期结果 | 1. 菜单关闭 2. 打开编辑弹窗 3. 弹窗显示该提醒的完整信息 |
| 优先级 | P0 |
| 状态 | 待测试 |
TC-RM-26 编辑弹窗内容正确
| 项目 | 内容 |
|---|---|
| 用例标题 | 编辑弹窗内容验证 |
| 测试场景 | 验证编辑弹窗显示的信息完整性 |
| 前置条件 | 1. 用户已登录 2. 存在一条带内容和时间的提醒 |
| 测试步骤 | 1. 右键点击提醒卡片 2. 点击"编辑" 3. 检查弹窗内容 |
| 预期结果 | 弹窗包含: 1. 标题字段(预填充) 2. 内容字段(预填充) 3. 日期时间选择器(预填充) 4. 优先级显示/选择 5. 保存、删除、取消按钮 |
| 优先级 | P0 |
| 状态 | 待测试 |
TC-RM-27 点击删除删除提醒
| 项目 | 内容 |
|---|---|
| 用例标题 | 右键菜单删除功能验证 |
| 测试场景 | 通过右键菜单删除提醒 |
| 前置条件 | 1. 用户已登录 2. 存在一条提醒 |
| 测试步骤 | 1. 右键点击提醒卡片 2. 点击"操作"区域的"删除"选项 |
| 预期结果 | 1. 菜单关闭 2. 弹出确认删除对话框 3. 确认后提醒从列表移除 |
| 优先级 | P0 |
| 状态 | 待测试 |
TC-RM-28 删除确认对话框
| 项目 | 内容 |
|---|---|
| 用例标题 | 删除确认对话框验证 |
| 测试场景 | 验证删除时的确认提示 |
| 前置条件 | 1. 用户已登录 2. 存在一条提醒 |
| 测试步骤 | 1. 右键点击提醒卡片 2. 点击"删除" 3. 观察确认对话框 |
| 预期结果 | 显示确认对话框,包含: 1. 提示文字"确定要删除这个提醒吗?" 2. "确认"和"取消"按钮 |
| 优先级 | P1 |
| 状态 | 待测试 |
TC-RM-29 删除取消操作
| 项目 | 内容 |
|---|---|
| 用例标题 | 删除取消操作验证 |
| 测试场景 | 在删除确认对话框中点击取消 |
| 前置条件 | 1. 用户已登录 2. 存在一条提醒 |
| 测试步骤 | 1. 右键点击提醒卡片 2. 点击"删除" 3. 在确认对话框中点击"取消" |
| 预期结果 | 1. 确认对话框关闭 2. 提醒保留在列表中 |
| 优先级 | P1 |
| 状态 | 待测试 |
TC-RM-30 删除后数据移除
| 项目 | 内容 |
|---|---|
| 用例标题 | 删除后数据从列表移除验证 |
| 测试场景 | 删除提醒后验证数据状态 |
| 前置条件 | 1. 用户已登录 2. 存在一条提醒 3. 记录提醒ID |
| 测试步骤 | 1. 删除该提醒 2. 刷新页面 |
| 预期结果 | 1. 提醒从列表中移除 2. 刷新后不再出现 3. 后端数据已删除 |
| 优先级 | P0 |
| 状态 | 待测试 |
五、UI样式验证
TC-RM-31 重复图标颜色
| 项目 | 内容 |
|---|---|
| 用例标题 | 重复图标统一为灰色 |
| 测试场景 | 验证带重复属性的提醒卡片上循环图标颜色 |
| 前置条件 | 1. 用户已登录 2. 存在一条重复提醒(每天/每周/每年重复) |
| 测试步骤 | 1. 找到带循环图标的提醒卡片 2. 查看图标颜色 |
| 预期结果 | 循环图标颜色统一为灰色(#999) |
| 优先级 | P0 |
| 状态 | 待测试 |
TC-RM-32 菜单区域划分
| 项目 | 内容 |
|---|---|
| 用例标题 | 右键菜单三个功能区域划分验证 |
| 测试场景 | 验证右键菜单的视觉区域划分 |
| 前置条件 | 1. 用户已登录 2. 存在一条提醒 |
| 测试步骤 | 1. 右键点击提醒卡片 2. 观察菜单结构 |
| 预期结果 | 菜单分为三个区域: 1. 顶部:日期调整(今日、明天、一周后) 2. 中部:优先级(无色、红色、绿色、黄色) 3. 底部:操作(编辑、删除) 各区域用分割线分隔 |
| 优先级 | P1 |
| 状态 | 待测试 |
TC-RM-33 优先级颜色指示
| 项目 | 内容 |
|---|---|
| 用例标题 | 优先级选项颜色指示验证 |
| 测试场景 | 验证菜单中优先级选项的颜色标识 |
| 前置条件 | 1. 用户已登录 2. 存在一条提醒 |
| 测试步骤 | 1. 右键点击提醒卡片 2. 点击"优先级"展开选项 3. 观察颜色指示 |
| 预期结果 | 1. 无色:灰色圆点 2. 红色:红色圆点 3. 绿色:绿色圆点 4. 黄色:黄色圆点 |
| 优先级 | P1 |
| 状态 | 待测试 |
TC-RM-34 菜单项图标
| 项目 | 内容 |
|---|---|
| 用例标题 | 菜单项图标显示验证 |
| 测试场景 | 验证各菜单项左侧图标是否正确显示 |
| 前置条件 | 1. 用户已登录 2. 存在一条提醒 |
| 测试步骤 | 1. 右键点击提醒卡片 2. 查看各菜单项图标 |
| 预期结果 | 1. 日期调整选项:日历图标 2. 优先级选项:圆形颜色图标 3. 编辑选项:编辑图标 4. 删除选项:垃圾桶图标 |
| 优先级 | P2 |
| 状态 | 待测试 |
TC-RM-35 菜单阴影和边框
| 项目 | 内容 |
|---|---|
| 用例标题 | 右键菜单样式验证 |
| 测试场景 | 验证菜单的整体视觉样式 |
| 前置条件 | 1. 用户已登录 2. 存在一条提醒 |
| 测试步骤 | 1. 右键点击提醒卡片 2. 观察菜单样式 |
| 预期结果 | 1. 白色背景 2. 轻微阴影效果 3. 圆角样式 4. 无多余边框 |
| 优先级 | P2 |
| 状态 | 待测试 |
六、异常场景测试
TC-RM-36 网络异常时日期调整
| 项目 | 内容 |
|---|---|
| 用例标题 | 网络异常时日期调整失败处理 |
| 测试场景 | 模拟网络异常,验证日期调整的错误处理 |
| 前置条件 | 1. 用户已登录 2. 存在一条提醒 3. 模拟网络断开 |
| 测试步骤 | 1. 断开网络连接 2. 右键点击提醒 3. 选择"今日" 4. 观察处理方式 |
| 预期结果 | 显示网络错误提示,数据不更新或显示离线状态 |
| 优先级 | P1 |
| 状态 | 待测试 |
TC-RM-37 网络异常时优先级设置
| 项目 | 内容 |
|---|---|
| 用例标题 | 网络异常时优先级设置失败处理 |
| 测试场景 | 模拟网络异常,验证优先级设置的错误处理 |
| 前置条件 | 1. 用户已登录 2. 存在一条提醒 3. 模拟网络断开 |
| 测试步骤 | 1. 断开网络连接 2. 右键点击提醒 3. 设置优先级为红色 4. 观察处理方式 |
| 预期结果 | 显示网络错误提示,UI状态不更新 |
| 优先级 | P1 |
| 状态 | 待测试 |
TC-RM-38 网络异常时删除操作
| 项目 | 内容 |
|---|---|
| 用例标题 | 网络异常时删除操作处理 |
| 测试场景 | 模拟网络异常,验证删除操作的错误处理 |
| 前置条件 | 1. 用户已登录 2. 存在一条提醒 3. 模拟网络断开 |
| 测试步骤 | 1. 断开网络连接 2. 右键点击提醒 3. 选择删除 4. 确认删除 |
| 预期结果 | 显示网络错误提示,提醒仍保留在列表中 |
| 优先级 | P0 |
| 状态 | 待测试 |
测试环境
| 项目 | 配置 |
|---|---|
| 测试账号 | ddshi0413@gmail.com / aA21135687 |
| 测试环境 | 开发环境 / staging环境 |
| 浏览器 | Chrome(最新版)、Firefox、Safari、Edge |
| 操作系统 | Windows 11、macOS、ChromeOS |
| 响应式测试 | 桌面端(1920px、1366px)、平板端(768px) |
测试账号信息
| 字段 | 值 |
|---|---|
| 邮箱 | ddshi0413@gmail.com |
| 密码 | aA21135687 |
附录:优先级颜色常量
const colors: Record<PriorityType, string> = {
none: 'rgba(0, 0, 0, 0.15)',
red: '#dc2626',
green: '#16a34a',
yellow: '#ca8a04',
};
重复图标颜色:#999
七、2026-02-04 版本更新测试用例
本次更新修复了以下内容:
- handlePostpone 增加了 next_reminder_date 同步逻辑(重复提醒顺延时)
- 使用 selector 优化 Zustand 订阅性能
- 添加点击外部关闭菜单机制
- 优先级显示"默认"而非"无色"
- 优先级勾选标记正确显示
- Checkbox 边框颜色根据优先级变化
TC-RM-39 重复提醒顺延时 next_reminder_date 同步更新
| 项目 | 内容 |
|---|---|
| 用例标题 | 重复提醒顺延时 next_reminder_date 同步更新 |
| 测试场景 | 对重复提醒进行日期顺延,验证 next_reminder_date 同步更新 |
| 前置条件 | 1. 用户已登录 2. 存在一条重复提醒(如每天重复) |
| 测试步骤 | 1. 创建一条每天重复的提醒(初始日期为2月1日) 2. 查看记录确认 next_reminder_date = 2月2日 3. 右键点击该提醒 4. 选择"今日"(假设当前日期为2月5日) |
| 预期结果 | 1. 菜单关闭 2. 提醒日期更新为2月5日 3. next_reminder_date 同步更新为2月6日 4. 重复属性保持不变 |
| 优先级 | P0 |
| 状态 | 待测试 |
TC-RM-40 重复提醒逾期后顺延不破坏周期
| 项目 | 内容 |
|---|---|
| 用例标题 | 重复提醒逾期后顺延不破坏原始周期 |
| 测试场景 | 验证重复提醒逾期后顺延,next_reminder_date 保持不变 |
| 前置条件 | 1. 用户已登录 2. 存在一条已过期的重复提醒 |
| 测试步骤 | 1. 创建一条每天重复的提醒,初始日期为2月1日 2. 假设当前日期为2月5日 3. 右键点击该逾期提醒 4. 选择"今日" |
| 预期结果 | 1. 菜单关闭 2. 提醒日期更新为2月5日 3. next_reminder_date 保持为2月2日(原始计算值) 4. 下次完成时从2月2日开始计算新周期 |
| 优先级 | P0 |
| 状态 | 待测试 |
TC-RM-41 Zustand selector 性能优化验证
| 项目 | 内容 |
|---|---|
| 用例标题 | 右键菜单状态使用 selector 订阅验证 |
| 测试场景 | 验证使用 selector 订阅 Zustand 状态,不影响功能 |
| 前置条件 | 1. 用户已登录 2. 存在至少两条提醒 |
| 测试步骤 | 1. 右键点击第一条提醒打开菜单 2. 快速右键点击第二条提醒 3. 观察菜单切换 |
| 预期结果 | 1. 菜单正确显示在当前点击的卡片位置 2. 不会出现多个菜单同时显示 3. 菜单切换流畅无卡顿 |
| 优先级 | P1 |
| 状态 | 待测试 |
TC-RM-42 点击菜单外部区域关闭菜单
| 项目 | 内容 |
|---|---|
| 用例标题 | 点击菜单外部区域正确关闭菜单 |
| 测试场景 | 右键菜单打开后,点击其他区域验证菜单关闭 |
| 前置条件 | 1. 用户已登录 2. 提醒列表中存在至少一条提醒 3. 右键菜单已打开 |
| 测试步骤 | 1. 右键点击卡片打开菜单 2. 点击页面其他空白区域(非卡片区域) 3. 再次右键打开菜单 4. 点击另一张卡片(不打开菜单) |
| 预期结果 | 1. 点击空白区域后,菜单立即关闭 2. 点击另一张卡片时,菜单关闭并切换到新卡片 |
| 优先级 | P0 |
| 状态 | 待测试 |
TC-RM-43 优先级选项显示为"默认"而非"无色"
| 项目 | 内容 |
|---|---|
| 用例标题 | 优先级选项文字显示验证 |
| 测试场景 | 验证优先级下拉菜单中"none"显示为"默认" |
| 前置条件 | 1. 用户已登录 2. 存在一条提醒 |
| 测试步骤 | 1. 右键点击提醒卡片 2. 点击"优先级"区域展开选项 3. 观察各选项显示文字 |
| 预期结果 | 1. 优先级选项显示为:默认、红色、绿色、黄色 2. 不显示"无色" |
| 优先级 | P0 |
| 状态 | 待测试 |
TC-RM-44 当前优先级勾选标记正确显示
| 项目 | 内容 |
|---|---|
| 用例标题 | 当前优先级勾选标记显示验证 |
| 测试场景 | 验证选中优先级后,菜单中正确显示勾选标记 |
| 前置条件 | 1. 用户已登录 2. 存在一条提醒 |
| 测试步骤 | 1. 设置提醒优先级为红色 2. 再次右键点击该提醒 3. 点击"优先级"展开选项 |
| 预期结果 | 1. 当前优先级选项(红色)右侧显示勾选标记 2. 其他优先级选项不显示勾选标记 3. 切换优先级后,勾选标记正确移动 |
| 优先级 | P1 |
| 状态 | 待测试 |
TC-RM-45 Checkbox 边框颜色根据优先级变化
| 项目 | 内容 |
|---|---|
| 用例标题 | 不同优先级下 checkbox 边框样式验证 |
| 测试场景 | 验证 checkbox 边框颜色随优先级变化 |
| 前置条件 | 1. 用户已登录 2. 创建4条提醒,分别设置不同优先级 |
| 测试步骤 | 1. 设置提醒A优先级为 none 2. 设置提醒B优先级为 red 3. 设置提醒C优先级为 green 4. 设置提醒D优先级为 yellow |
| 预期结果 | 1. 提醒A(默认):checkbox边框 rgba(0,0,0,0.15),1px 2. 提醒B(红色):checkbox边框 #dc2626,2px 3. 提醒C(绿色):checkbox边框 #16a34a,2px 4. 提醒D(黄色):checkbox边框 #ca8a04,2px |
| 优先级 | P1 |
| 状态 | 待测试 |
TC-RM-46 优先级按钮边框颜色同步
| 项目 | 内容 |
|---|---|
| 用例标题 | 优先级按钮边框颜色同步更新 |
| 测试场景 | 验证右键菜单中优先级按钮边框颜色与当前优先级同步 |
| 前置条件 | 1. 用户已登录 2. 存在一条提醒 |
| 测试步骤 | 1. 右键点击提醒 2. 观察优先级按钮边框颜色 3. 切换优先级后再次打开菜单 4. 观察按钮边框颜色变化 |
| 预期结果 | 1. 按钮边框颜色与当前优先级颜色一致 2. 优先级图标颜色与边框颜色一致 3. 切换优先级后,按钮样式实时更新 |
| 优先级 | P1 |
| 状态 | 待测试 |
TC-RM-47 优先级数据持久化与刷新
| 项目 | 内容 |
|---|---|
| 用例标题 | 优先级设置后刷新页面验证 |
| 测试场景 | 设置优先级后刷新页面,验证 checkbox 边框样式保留 |
| 前置条件 | 1. 用户已登录 2. 存在一条提醒 |
| 测试步骤 | 1. 设置提醒为红色优先级 2. 刷新浏览器页面 3. 查看该提醒 |
| 预期结果 | 1. 页面刷新后 2. 提醒仍显示红色优先级边框 3. 数据从后端正确加载 |
| 优先级 | P0 |
| 状态 | 待测试 |
TC-RM-48 优先级切换动画效果
| 项目 | 内容 |
|---|---|
| 用例标题 | 优先级切换时菜单项动画效果 |
| 测试场景 | 验证切换优先级时勾选标记的切换动画 |
| 前置条件 | 1. 用户已登录 2. 存在一条提醒 |
| 测试步骤 | 1. 右键点击提醒打开菜单 2. 点击"优先级"展开选项 3. 依次点击不同的优先级 |
| 预期结果 | 1. 勾选标记在选项间平滑切换 2. 无闪烁或跳跃现象 3. 切换后菜单保持打开状态 |
| 优先级 | P2 |
| 状态 | 待测试 |
测试环境
| 项目 | 配置 |
|---|---|
| 测试账号 | ddshi0413@gmail.com / aA21135687 |
| 测试环境 | 开发环境 / staging环境 |
| 浏览器 | Chrome(最新版)、Firefox、Safari、Edge |
| 操作系统 | Windows 11、macOS、ChromeOS |
| 响应式测试 | 桌面端(1920px、1366px)、平板端(768px) |
测试账号信息
| 字段 | 值 |
|---|---|
| 邮箱 | ddshi0413@gmail.com |
| 密码 | aA21135687 |
附录:优先级颜色常量
const PRIORITY_COLORS: Record<PriorityType, string> = {
none: 'rgba(0, 0, 0, 0.15)',
red: '#dc2626',
green: '#16a34a',
yellow: '#ca8a04',
};
const PRIORITY_NAMES: Record<PriorityType, string> = {
none: '默认',
red: '红色',
green: '绿色',
yellow: '黄色',
};
重复图标颜色:#999