Files
hzdyjs/test/新增学生功能验证.md
T
2025-07-16 18:11:31 +08:00

4.3 KiB

新增学生功能验证测试

📋 测试概述

  • 测试目的: 验证学生信息管理页面的新增功能是否正常工作
  • 测试时间: 2025-01-15
  • 修复内容: 权限配置统一化 + Vue语法兼容性修复

🔧 修复内容回顾

1. 权限标识统一化

  • 修复前: v-hasPermi="['xg-xx:student:add']"
  • 修复后: v-hasPermi="['xg:studentInfo:add']"
  • 结果: 与后端Controller权限标识保持一致

2. Vue语法兼容性修复

  • 修复前: :visible.sync="dialogVisible" (Vue 2语法)
  • 修复后: v-model="dialogVisible" (Vue 3语法)
  • 影响组件: 6个Dialog组件全部修复

3. 权限配置完善

  • 创建学工管理主菜单 (menu_id: 1800)
  • 创建学生信息管理页面 (menu_id: 1801)
  • 创建9个功能按钮权限 (menu_id: 1811-1819)

🧪 验证步骤

步骤1: 检查权限配置

-- 验证权限菜单是否创建成功
SELECT menu_id, menu_name, perms, menu_type 
FROM sys_menu 
WHERE menu_id BETWEEN 1800 AND 1819
ORDER BY menu_id;

-- 验证角色权限是否分配成功
SELECT rm.role_id, rm.menu_id, m.menu_name, m.perms
FROM sys_role_menu rm
JOIN sys_menu m ON rm.menu_id = m.menu_id
WHERE rm.menu_id BETWEEN 1800 AND 1819
ORDER BY rm.menu_id;

步骤2: 前端页面验证

  1. 访问页面: 打开 http://localhost/xg-xx/studentInfo
  2. 检查按钮: 确认"新增"按钮可见且可点击
  3. 点击测试: 点击"新增"按钮
  4. 弹窗验证: 确认编辑弹窗正常弹出

步骤3: 浏览器控制台检查

// 在浏览器控制台执行以下代码
// 1. 检查权限
console.log('用户权限:', this.$store.getters.permissions);
console.log('是否有新增权限:', this.$store.getters.permissions.includes('xg:studentInfo:add'));

// 2. 检查组件状态
console.log('编辑弹窗状态:', this.editVisible);
console.log('学生ID:', this.selectedStudentId);
console.log('是否编辑模式:', this.isEdit);

步骤4: 功能完整性测试

  1. 新增模式: 点击新增按钮,弹窗标题应为"新增学生信息"
  2. 表单初始化: 表单字段应为空白状态
  3. 数据验证: 尝试提交空表单,应有验证提示
  4. 关闭功能: 点击取消或关闭按钮,弹窗应正常关闭

✅ 预期结果

正常情况

  • ✅ 新增按钮可见且可点击
  • ✅ 点击后弹出编辑弹窗
  • ✅ 弹窗标题显示"新增学生信息"
  • ✅ 表单字段为空白状态
  • ✅ 表单验证正常工作
  • ✅ 弹窗可正常关闭

异常情况处理

  • ❌ 如果按钮不可见: 检查权限配置
  • ❌ 如果点击无反应: 检查Vue语法和JavaScript错误
  • ❌ 如果弹窗不出现: 检查组件导入和注册
  • ❌ 如果表单异常: 检查组件props和数据绑定

🔍 故障排除

权限问题

-- 检查用户是否有权限
SELECT u.user_name, r.role_name, m.menu_name, m.perms
FROM sys_user u
JOIN sys_user_role ur ON u.user_id = ur.user_id
JOIN sys_role r ON ur.role_id = r.role_id
JOIN sys_role_menu rm ON r.role_id = rm.role_id
JOIN sys_menu m ON rm.menu_id = m.menu_id
WHERE u.user_name = 'admin' AND m.perms = 'xg:studentInfo:add';

前端问题

// 检查组件是否正确导入
console.log('StudentEditDialog组件:', this.$options.components.StudentEditDialog);

// 检查数据绑定
console.log('editVisible:', this.editVisible);
console.log('selectedStudentId:', this.selectedStudentId);
console.log('isEdit:', this.isEdit);

Vue语法问题

<!-- 确认使用正确的Vue 3语法 -->
<el-dialog v-model="dialogVisible">  <!-- ✅ 正确 -->
<el-dialog :visible.sync="dialogVisible">  <!-- ❌ 错误 -->

📊 测试结果记录

测试环境

  • 前端: Vue 3 + Element Plus
  • 后端: Spring Boot 3.4.6
  • 数据库: MySQL
  • 浏览器: Chrome/Firefox

测试结果

  • 权限配置验证
  • 前端页面验证
  • 控制台检查
  • 功能完整性测试

问题记录

  • 问题1: [记录发现的问题]
  • 解决方案: [对应的解决方案]
  • 验证结果: [修复后的验证结果]

📝 备注:

  • 本测试文档用于验证新增学生功能的完整性
  • 如发现问题,请记录详细的错误信息和解决步骤
  • 测试通过后,可以进行后续的编辑、删除等功能测试