SpringMVC+Spring+MyBatis 的综合练习 10 (使用 Spring 测试 DAO)
2018-01-28 20:47
531 查看
10.1 测试的准备
Spring 提供了自己的模拟测试方法,可以自动注入需要的组件,也可以模拟页面的请求并返回结果,从而完成从 DAO 到 MVC 的多层面测试。要想使用 Spring 提供的测试方法,需要在 POM 中导入 spring-test 依赖。<!-- https://mvnrepository.com/artifact/org.springframework/spring-test --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>4.3.13.RELEASE</version> <scope>test</scope> </dependency>
10.2 测试 DAO
以 Department 为例,编写测试方法。代码如下:package com.hh.ssm.test; import java.util.ArrayList; import java.util.Date; import java.util.Iterator; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import com.hh.ssm.bean.Department; import com.hh.ssm.bean.Employee; import com.hh.ssm.dao.DepartmentMapper; /** * 测试 DepartmentDAO * @author HH * 对 Spring 项目推荐采用 Spring 单元测试,可以自动注入我们所需要的组件。 * 1. 导入 Spring Test 模块。 * 2. 使用 @ContextConfiguration 指定 Spring 配置文件的位置。 * 3. 直接 @Autowired 我们要使用的组件 */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations={"classpath:applicationContext.xml"}) public class DepartmentTest { @Autowired DepartmentMapper deparmentMapper; @Test public void testInsertDepartment() { // 测试是否自动注入了组件 System.out.println(deparmentMapper); // 1. 插入新的部门 Department record = new Department(); Date currentDate = new Date(); String departmentName = "董事会"; record.setDepartmentName(departmentName); record.setGmtCreate(currentDate); record.setGmtModified(currentDate); System.out.println(record); int result = deparmentMapper.insert(record); System.out.println("result = " + result); } @Test public void testSelectByPrimaryKey() { Integer id = 5; Department result = new Department(); result = deparmentMapper.selectByPrimaryKey(id); System.out.println("result = " + result); } @Test public void testSelectByPrimaryKeyWithEmployees() { Integer id = 5; Department result = new Department(); result = deparmentMapper.selectByPrimaryKeyWithEmployees(id); System.out.println("result = " + result); System.out.println("================================"); List<Employee> employees = result.getEmployees(); System.out.println("employees : " + employees); } @Test public void testSelectByExampleWithNull() { int i=0; List<Department> result = deparmentMapper.selectByExample(null); for (Department department : result) { i++; System.out.println(i + " " + department); } } }
这些测试都是通过自动注入了 DepartmentMapper 组件后,调用了对应的接口实现的 CRUD 一系列动作。通过这些测试,可以让我们更好的理解 DAO 中各个接口的用法,同时也可以测试自己新增的接口(同时验证 xxxMapper.xml 的配置正确性)。
到目前为止,两个类的 CRUD 大体上搭建好了,下一步应该考虑的是 MVC 了。打算从前台页面开始,然后逐层编写实现MVC。
相关文章推荐
- SpringMVC+Spring+MyBatis 的综合练习 7 (逆向生成实体类和DAO接口)
- SpringMVC+Spring+MyBatis 的综合练习 13 (前端页面之员工列表)
- SpringMVC+Spring+MyBatis 的综合练习 2 (搭建Maven环境)
- 使用基于注解的springmvc+mybatis的测试问题
- SpringMVC+Spring+MyBatis 的综合练习 4 (配置 web.xml )
- SpringMVC+Spring+MyBatis 的综合练习 9 (增加查询员工信息时带有部门信息)
- SpringMVC+Spring+MyBatis 的综合练习 0 (演出开始了)
- SpringMVC+Spring+MyBatis 的综合练习 14 (前端页面之部门列表)
- SpringMVC+Spring+MyBatis 的综合练习 3 (引入Bootstrap)
- SpringMVC+Spring+MyBatis 的综合练习 5 (配置 Spring)
- 【系列】使用springmvc+mybatis创建Web应用(二)—— 数据库、配置和测试
- SpringMVC+Spring+MyBatis 的综合练习 8 (Generator生成的实体类)
- 使用springMVC+mybatis生成Dao层的xxDao
- SpringMVC+Spring+MyBatis 的综合练习 6 (配置 Mybatis 及 Generator)
- Spring+SpringMVC+mybatis+easyui整合-----注解方式的mybatis的使用
- zTree的调用设使用(跨两个系统,两类技术实现的项目案例SpringMVC+Spring+MyBatis和Struts2+Spring+ibatis框架组合)
- springMvc+MyBatis+Maven下JUnit使用的一种方式
- Spring+SpringMVC+mybatis+easyui整合实例(五)使用mybatis拦截器分页
- SpringMvc+Mybatis简单测试
- 使用Maven搭建Spring+SpringMVC+Mybatis+ehcache项目