重新整理仓库

This commit is contained in:
2025-07-25 13:28:38 +08:00
parent 469af7f7f9
commit 64134bf45b
11 changed files with 106 additions and 243 deletions

View File

@@ -0,0 +1,236 @@
# 🧪 栏目选择记忆功能测试指南
## 🎯 测试目标
验证栏目选择记忆功能是否按预期工作,确保用户体验的提升。
## 📋 测试准备
### 环境要求
- 浏览器支持 localStorage
- 已登录 CMS 系统
- 至少有 2-3 个不同的栏目可供选择
### 测试数据
- 栏目A例如"技术文章"
- 栏目B例如"产品动态"
- 栏目C例如"公司新闻"
## 🔬 详细测试用例
### 测试用例 1首次使用记忆功能
**步骤:**
1. 清空浏览器 localStorage可选模拟首次使用
2. 进入文章管理页面
3. 点击"添加文章"按钮
4. 观察栏目选择框的状态
5. 选择"栏目A"
6. 填写文章标题和内容
7. 保存文章
**预期结果:**
- 初始状态栏目选择框为空或显示默认值
- 选择栏目A后系统应该记住这个选择
- 保存成功后栏目A被保存到 localStorage
**验证方法:**
- 打开浏览器开发者工具
- 查看 Application > Local Storage
- 确认存在 `cms_article_last_category`值为栏目A的ID
---
### 测试用例 2记忆功能恢复
**步骤:**
1. 在测试用例1的基础上
2. 关闭添加文章弹窗
3. 重新点击"添加文章"按钮
4. 观察栏目选择框的状态
**预期结果:**
- 栏目选择框应该自动显示"栏目A"
- 用户无需重新选择栏目
**验证方法:**
- 确认栏目选择框的值确实是栏目A
- 确认这是自动填入的,不是用户手动选择的
---
### 测试用例 3更换栏目记忆
**步骤:**
1. 在测试用例2的基础上
2. 将栏目从"栏目A"改为"栏目B"
3. 填写文章内容并保存
4. 重新打开添加文章弹窗
**预期结果:**
- 保存后localStorage 中的值应该更新为栏目B的ID
- 重新打开弹窗时,应该显示"栏目B"
**验证方法:**
- 检查 localStorage 中的值是否已更新
- 确认新弹窗中显示的是栏目B
---
### 测试用例 4从栏目页面添加文章
**步骤:**
1. 进入栏目管理页面
2. 找到"栏目C",点击其"添加文章"按钮
3. 观察栏目选择框的状态
4. 填写文章内容并保存
5. 重新从文章管理页面点击"添加文章"
**预期结果:**
- 从栏目C页面打开的弹窗应该显示"栏目C"
- 保存后记忆应该更新为栏目C
- 从文章管理页面重新打开时应该显示栏目C
**验证方法:**
- 确认优先级策略正确工作
- 确认传入的栏目ID优先于记忆的栏目ID
---
### 测试用例 5编辑文章不影响记忆
**步骤:**
1. 确保当前记忆的栏目是"栏目C"
2. 编辑一篇属于"栏目A"的现有文章
3. 修改文章内容(不修改栏目)
4. 保存文章
5. 重新打开添加文章弹窗
**预期结果:**
- 编辑时显示的栏目应该是文章原有的栏目A
- 保存后记忆的栏目仍然是栏目C不变
- 新建文章时仍然显示栏目C
**验证方法:**
- 确认编辑操作不会影响栏目记忆
- 确认新增和编辑的逻辑完全独立
---
### 测试用例 6跨会话持久化
**步骤:**
1. 确保当前记忆的栏目是"栏目C"
2. 完全关闭浏览器
3. 重新打开浏览器并登录系统
4. 点击"添加文章"按钮
**预期结果:**
- 栏目选择框应该仍然显示"栏目C"
- 记忆功能跨会话保持有效
**验证方法:**
- 确认 localStorage 数据在浏览器重启后仍然存在
- 确认功能正常恢复
---
### 测试用例 7手动选择栏目的即时保存
**步骤:**
1. 打开添加文章弹窗
2. 当前显示栏目A手动改为栏目B
3. 不保存文章,直接关闭弹窗
4. 重新打开添加文章弹窗
**预期结果:**
- 手动选择栏目B后应该立即保存到记忆中
- 重新打开弹窗时应该显示栏目B
- 即使没有保存文章,栏目记忆也应该更新
**验证方法:**
- 确认栏目选择的 onChange 事件正确触发保存
- 确认不依赖文章保存就能更新记忆
---
## 🔍 边界情况测试
### 边界测试 1清空栏目选择
**步骤:**
1. 打开添加文章弹窗(当前有记忆的栏目)
2. 点击栏目选择框的"清空"按钮
3. 观察系统行为
**预期结果:**
- 栏目选择框应该变为空
- 系统应该正常处理空值情况
### 边界测试 2无效栏目ID
**步骤:**
1. 手动修改 localStorage 中的栏目ID为一个不存在的值
2. 刷新页面并打开添加文章弹窗
3. 观察系统行为
**预期结果:**
- 系统应该优雅地处理无效ID
- 栏目选择框应该显示为空或默认状态
- 不应该出现错误提示
### 边界测试 3localStorage 不可用
**步骤:**
1. 禁用浏览器的 localStorage 功能
2. 尝试使用栏目记忆功能
3. 观察系统行为
**预期结果:**
- 系统应该正常工作,只是没有记忆功能
- 不应该出现 JavaScript 错误
- 功能应该优雅降级
---
## ✅ 测试检查清单
### 基础功能
- [ ] 首次选择栏目能够正确保存
- [ ] 重新打开弹窗能够正确恢复栏目
- [ ] 更换栏目能够正确更新记忆
- [ ] 手动选择栏目能够即时保存
### 优先级策略
- [ ] 从栏目页面添加文章时优先使用传入栏目
- [ ] 其他情况下使用记忆的栏目
- [ ] 编辑文章时不影响栏目记忆
### 持久化
- [ ] 关闭浏览器后重新打开仍然有效
- [ ] localStorage 数据格式正确
- [ ] 数据读写操作正常
### 用户体验
- [ ] 功能对用户透明,不干扰正常操作
- [ ] 栏目选择状态清晰可见
- [ ] 没有不必要的提示或干扰
### 错误处理
- [ ] 无效栏目ID的处理
- [ ] localStorage 不可用时的降级
- [ ] 空值和边界情况的处理
---
## 🎯 测试通过标准
所有测试用例都应该通过,特别是:
1. **核心功能正常**:记忆和恢复功能完全正常
2. **优先级正确**:各种场景下的栏目选择优先级符合预期
3. **数据持久化**:跨会话数据保持有效
4. **用户体验良好**:功能提升效率,不造成困扰
5. **错误处理完善**:边界情况和异常情况处理得当
通过这些测试,可以确保栏目选择记忆功能稳定可靠,真正提升用户的使用体验!