Java单元测试与反射应用:第五次实验报告

需积分: 0 0 下载量 145 浏览量 更新于2024-08-04 收藏 224KB DOCX 举报
"本次实验是关于软件测试的一个实践,主要采用了Junit进行单元测试,并通过反射技术对受保护的函数进行测试。实验包含了多个测试用例,覆盖了用户登录、课程信息查询、选课、密码修改、课表展示、退课、教务员添加学生以及课程添加等多个功能点。" 在本次第五次实验中,实验者运用了测试样例设计来验证程序的功能性。测试样例设计是软件测试中的关键步骤,它包括定义测试编号、测试用例描述、输入参数、预期输出以及实际输出,以便清晰地记录和分析测试结果。 1. Junit测试:Junit是一个流行的Java编程语言的单元测试框架,用于编写和运行可重复的测试。实验者创建了新的测试包并构建了测试样例,确保了每个功能模块的独立性和可测试性。通过Junit的断言方法,可以比较预期输出和实际输出,从而判断测试是否通过。 2. 反射报错:在测试一个受保护的函数时,实验者遇到了反射相关的错误。反射是Java的一种能力,允许程序在运行时检查和操作类、接口、字段和方法。由于尝试访问受保护的成员,可能导致了此问题。尽管进行了代码对比和查阅资料,实验者未能找到并解决这个问题。 3. 测试用例包括: - 用户登录异常测试:测试了错误的账户或密码情况,预期输出为错误提示,实际输出与预期一致。 - 成功登录:验证了正确账户和密码下的登录流程,测试结果符合预期。 - 课程信息查询:测试条件查找课程的功能,实际输出为null,表明存在问题。 - 选课操作:测试了选课及其对课程余量的影响,第5个测试用例揭示了选课系统可能存在的漏洞,即当课余量为0时仍能选课。 - 密码修改:测试了教师权限下的密码修改,成功完成。 - 课表展示:显示了课表异常的问题,实际输出与预期不符。 - 退课操作:测试退课功能,发现数据库中的课余量未正确更新。 - 教务员添加学生:成功添加学生到数据库,测试通过。 - 重复课程添加:测试了添加已存在课程的场景,程序出现了崩溃。 实验结果表明,部分功能如课程信息查询、选课系统、课表展示、退课功能以及课程添加存在错误或异常,需要进一步调试和修复。实验者通过详尽的测试用例设计和Junit测试,有效地暴露了程序中的问题,为后续的代码优化和调试提供了基础。