【Junit】Spring项目单元测试

血红的双手。 提交于 2019-12-02 15:11:47

一、背景

spring项目如需测试小的功能,启动整个项目费时费力,可以使用spring-test包进行单元测试,加速项目开发和测试

二、使用

1.添加maven依赖

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>4.3.21.RELEASE</version>
</dependency>

2.创建测试类

要测试的是JdbcDaoSupport的功能,因为该类是抽象类,无法实例化,所以需要继承它,由于没有抽象方法,最简实现无需实现任何方法。

package database.dao;

import org.springframework.jdbc.core.support.JdbcDaoSupport;

/**
 * JdbcDaoSupport最简实现
 *
 * @author wangying49
 * @date 2019/10/28
 */
public class SimpleJdbcDao extends JdbcDaoSupport {

}

选中需要测试的类,cmd+shift+T 快捷键,创建测试类

2.1 配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans default-autowire="byName" 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
                           http://www.springframework.org/schema/beans/spring-beans.xsd
                           http://www.springframework.org/schema/context
                           http://www.springframework.org/schema/context/spring-context.xsd">

    <!--使用属性文件-->
    <context:property-placeholder location="classpath:application.properties"
                                  order="1" ignore-unresolvable="true" />
    <!-- 数据库 -->
    <!--数据源配置-->
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
        <property name="username" value="root"/>
        <property name="password" value="root"/>
    </bean>

    <bean id="simpleJdbcDao" class="database.dao.SimpleJdbcDao">
        <property name="dataSource" ref="dataSource"/>
    </bean>

</beans>

 

2.2 编写测试类,引用配置文件

package database.dao;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.jdbc.core.support.JdbcDaoSupport;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import java.util.List;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath*:/acTest.xml" })
public class SimpleJdbcDaoTest {

    @Autowired
    @Qualifier("simpleJdbcDao")
    private JdbcDaoSupport jdbcDaoSupport;


    @Test
    public void testJdbcDaoSupport() {
        String sql = "select * from user";
        List list = jdbcDaoSupport.getJdbcTemplate().queryForList(sql);
        System.out.println(list);
    }

}

2.3 配置文件放置路径

@ContextConfiguration(locations = { "acTest.xml" }) 需要放置在编译后的SimpleJdbcDaoTest.class文件路径下
@ContextConfiguration(locations = { "classpath*:/acTest.xml" }) 放置在/src/test/resources 路径下面,执行后被拷贝到/target/test-classes/acTest.xml路径下

3.测试结果

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!