文章目录
- 七、实现步骤
- (六)创建数据访问接口实现类
- 1、创建学校数据访问接口实现类
- 单元测试:对CollegeDaoImpl进行单元测试
- 2、创建状态数据访问接口实现类
- 单元测试:对StatusDaoImpl进行单元测试
- 3、学生数据访问接口实现类
- 单元测试:对StudentDaoImpl进行单元测试
- (1)编写测试方法testInsert()
- (2)编写测试方法testDeleteById()
- (3)编写测试方法testDeleteByClass()
- (4)编写测试方法testFindByName()
- (5)编写测试方法testFindAll()
- (6)编写测试方法testFindRowsBySex()
- 独立完成剩余方法的测试任务
- (1)编写测试方法testDeleteByDepartment()
- (2)编写测试方法testUpdate()
- (3)编写测试方法testFindById()
- (4)编写测试方法testFindByClass()
- (5)编写测试方法testFindByDepartment()
- (6)编写测试方法testFindRowsByClass()
- (7)编写测试方法testFindRowsByDepartment()
- 4、创建用户数据访问接口实现类
- 单元测试:对UserDaoImpl进行单元测试
- 独立完成剩余方法的测试任务
七、实现步骤
(六)创建数据访问接口实现类
- 在
net.hw.student.dao
包里创建impl
子包,然后在里面创建四个数据访问接口的实现类。
1、创建学校数据访问接口实现类
- 创建学校数据访问接口实现类CollegeDaoImpl
单元测试:对CollegeDaoImpl进行单元测试
为了确保Dao层给上层提供正确的数据操作服务,应该进行单元测试,本项目采用JUnit4单元测试框架。
- 在根包net.hw.student里创建test子包,在里面创建测试类TestCollegeDaoImpl
(1)编写测试方法testFindById()
- 给testFindById()添加测试注解符
- 将单元测试JUnit4添加到类路径,才能使用测试注解符
@Test
- 将鼠标移到
@Test
,按<Alt>+<Enter>
组合键,弹出快捷菜单,选择第一项Add 'JUnit4' to classpath
- 执行单元测试方法testFindById()
- 查看添加到类路径的JUnit4
- 编写单元测试方法testFindById()代码
- 运行测试方法testFindById(),查看结果
(2)编写测试方法testUpdate()
- 运行测试方法testUpdate(),查看结果
由此可见,CollegeDaoImpl的两个方法都通过了单元测试,其实多个测试方法可以一起进行测试,这样做测试效率更高。
(3)同时运行多个测试方法
(4)修改完善测试代码
- 两个测试方法的第一行代码都是一样的,因此可以提取出来
- 在每个单元测试之前都要执行的代码,我们可以将代码放在一个方法里面,但是加上一个注解符
@Before
即可。 - 在每个单元测试之后都要执行的代码,我们可以将代码放在一个方法里面,但是加上一个注解符
@After
即可。 - 添加测试前与测试后要执行的代码
- 运行测试方法testFindById(),查看结果
- 运行测试方法testUpdate(),查看结果
2、创建状态数据访问接口实现类
- 创建状态数据访问接口实现类StatusDaoImpl
单元测试:对StatusDaoImpl进行单元测试
- 在net.hw.student.test包里创建测试类TestStatusDaoImpl
(1)编写测试方法testFindById()
- 运行testFindById()方法,查看结果
(2)编写测试方法testUpdate()
- 运行testUpdate()方法,查看结果
- 有些同学,在测试更新方法时,抛出MySQLSyntaxErrorException,如下图所示:
要学会看错误提示信息,这对于我们开发程序相当重要,提示在telephone = '13845456780’附近存在MySQL句法错误,因此,我们要去看源码进行调试,解决这个错误。
3、学生数据访问接口实现类
- 学生数据访问接口实现类StudentDaoImpl
单元测试:对StudentDaoImpl进行单元测试
- 在net.hw.student.test包里创建测试类TestStudentDaoImpl
(1)编写测试方法testInsert()
- 运行该测试方法,查看结果
- 可以打开数据表,查看插入的新记录
(2)编写测试方法testDeleteById()
- 运行该测试方法,查看结果
- 打开数据表,查看先前插入的记录【张晓慧】是否被删除
(3)编写测试方法testDeleteByClass()
- 运行该测试方法,查看结果
- 同学们,不妨打开学生表,查看是否删除成功
- 打开NaviCat,运行student.sql脚本,恢复数据。
(4)编写测试方法testFindByName()
- 运行该测试方法,查看结果
- 修改待查学生的姓名
- 运行该测试方法,查看结果
- 查找所有姓“李”的学生记录,修改查找目标
- 运行该测试方法,查看结果
(5)编写测试方法testFindAll()
- 运行该测试方法,查看结果
(6)编写测试方法testFindRowsBySex()
- 运行该测试方法,查看结果
独立完成剩余方法的测试任务
(1)编写测试方法testDeleteByDepartment()
(2)编写测试方法testUpdate()
(3)编写测试方法testFindById()
(4)编写测试方法testFindByClass()
(5)编写测试方法testFindByDepartment()
(6)编写测试方法testFindRowsByClass()
(7)编写测试方法testFindRowsByDepartment()
4、创建用户数据访问接口实现类
- 创建用户数据访问接口实现类UserDaoImpl
单元测试:对UserDaoImpl进行单元测试
- 在net.hw.student.test包里创建测试类TestUserDaoImpl
(1)编写测试方法testFindById()
- 运行该测试方法,查看结果
(2)编写测试方法testLogin()
- 运行该测试方法,查看结果
- 修改用户名和密码
- 运行该测试方法,查看结果
(3)编写测试方法testIsUsernameExisted()
- 运行该测试方法,查看结果
- 修改用户名,改成用户表里有的用户名【王霞】
- 运行该测试方法,查看结果
(4)编写测试方法testInsert()
- 运行该测试方法,查看结果
- 再次运行该测试方法,查看结果
- 因为不允许同名用户插入,所以用户记录插入失败。