携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第4天,点击查看活动详情
今天我们学习一下spring单元测试的功能
1.创建工程
2.pom.xml引入对应的依赖
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.6.RELEASE</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.24</version>
</dependency>
<!-- 引入单元测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- 引入spring test类-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.2.6.RELEASE</version>
</dependency>
</dependencies>
3.resource目录下创建applicationContext.xml文件并且配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd">
<!-- 配置数据源
url表示数据库连接语句,用于说明连接哪一个数据库,用哪种编码等信息
username表示数据库账户
password表示数据库密码-->
<bean id="dataScource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/imooc?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</bean>
<!-- 定义jdbcTemplate并且注入dataSource-->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataScource"/>
</bean>
</beans>
4.创建对应dao和entity实体类
Employee.class
package com.imooc.entity;
import java.util.Date;
public class Employee {
public Integer eno;
/
数据表多少个字段,就创建多少个属性 并且生成对应的get和set方法
.........
/
public Integer getEno() {
return eno;
}
public void setEno(Integer eno) {
this.eno = eno;
}
//重写toString方法,为了方便调试
@Override
public String toString() {
return "Employee{" +
"eno=" + eno +
", ename='" + ename + ''' +
", salary=" + salary +
", dname='" + dname + ''' +
", hiredate=" + hiredate +
'}';
}
}
EmployeeDao.java
package com.imooc.dao;
import com.imooc.entity.Employee;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
public class EmployeeDao {
//引入jdbcTemplate属性并且创建get和set方法
public JdbcTemplate jdbcTemplate;
public JdbcTemplate getJdbcTemplate() {
return jdbcTemplate;
}
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
//根据eno查询员工
public Employee findById(Integer eno) {
String sql = "select * from employee where eno = ?";
Employee employee = jdbcTemplate.queryForObject(sql, new Object[]{eno}, new BeanPropertyRowMapper<Employee>(Employee.class));
return employee;
}
}
5.创建dao之后,在application.xml配置对应的bean并且注入jdbcTemplate
<bean id="employeeDao" class="com.imooc.dao.EmployeeDao">
<property name="jdbcTemplate" ref="jdbcTemplate"/>
</bean>
6.test目录创建对应的测试用例文件,一般测试用例的文件以 XXXTestor结尾
测试用例文件配置如下:
import com.imooc.dao.EmployeeDao;
import com.imooc.entity.Employee;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import javax.annotation.Resource;
import java.util.Date;
//把控制权交给springJunit
@RunWith(SpringJUnit4ClassRunner.class)
//加载文件
@ContextConfiguration(locations = {"classpath:applicationContext.xml"})
public class JdbcTemplateTestor {
//如果是对象 使用注解@Resource
@Resource
public EmployeeDao employeeDao;
//测试用例使用 @Test注解
@Test
public void findById(){
Employee employee = employeeDao.findById(1000);
System.out.println(employee);
}
}