Spring Test 整合 JUnit 4 使用总结

1. 加入依赖包

<dependency>  
            <groupId>junit</groupId>  
            <artifactId>junit</artifactId>  
            <version>4.9</version>  
            <scope>test</scope>  
        </dependency>   
<dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-test</artifactId>  
            <version> 3.2.4.RELEASE  </version>  
            <scope>provided</scope>  
        </dependency>   

2. 创建测试源目录和包

3. 创建测试类

  创建一个测试用的类,推荐名称为 “被测试类名称 + Test”。

测试类应该继承与

AbstractJUnit4SpringContextTests 或 AbstractTransactionalJUnit4SpringContextTests

需要用到事务管理(比如要在测试结果出来之后回滚测试内容),就可以使用AbstractTransactionalJUnit4SpringTests类。事务管理的使用方法和正常使用Spring事务管理是一样的。再此需要注意的是,如果想要使用声明式事务管理,即使用AbstractTransactionalJUnitSpringContextTests类,请在applicationContext.xml文件中加入transactionManager bean:

<bean id="transactionManager"
    class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource" />
</bean>

  如果没有添加上述bean,将会抛出NoSuchBeanDefinitionException,指明 No bean named 'transactionManager' is definded.

4. 配置测试类

  添加如下内容在class前,用于配置applicationContext.xml文件的位置。

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:applicationContext.xml")

需要把applicationContext.xml和其相关的文件拉到resources下

5. 创建测试方法

  创建测试用方法,推荐名称为 “被测方法名称+ Test”。

  测试方法上方加入 @Test

6. 通过JUnit 4 执行

  右键方法名,选择则“Run As”→“JUnit Test”即可

附录:整体测试类文件

import com.zhaogang.mapper.NoticeMapper;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import javax.annotation.Resource;

/**
 * Created by weixiang.wu on 2017/8/2.
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:applicationContext.xml")
public class NoticeTest extends AbstractJUnit4SpringContextTests {

    private static final Logger logger = LoggerFactory.getLogger(NoticeTest.class);

    @Resource
    private NoticeMapper noticeMapper;


    @Test
    public void testUser() {
        logger.info("公共标题测试: "+noticeMapper.selectTitleByPrimaryKey(23L));
    }

}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java技术栈

干货|基于 Spring Cloud 的微服务落地

77730
来自专栏一个会写诗的程序员的博客

《Spring Boot 实战开发》 附录 II : Spring Boot 2.0 新特性《Spring Boot 实战开发》 附录 II : Spring Boot 2.0 新特性Kotlin

本节我们介绍 Spring Boot 2.0 版本的众多新特性,内容包括了 M1~M7里程碑版本的核心新功能特性。不过,我们首先把对 Kotlin 的特性的支持...

23030
来自专栏CodeSheep的技术分享

从SpringBoot到SpringMVC

用久了SpringBoot,深受其约定大于配置的便利性毒害之后,我想回归到SpringMVC时代,看看SpringMVC开发模式中用户是如何参与的。本文就来体验...

19180
来自专栏熊二哥

Spring快速入门

Spring源码剖析一书,非常细致,但对于个人来说,意义不算特别的大,因此选其可用部分做个记录就好。 ? 功能 示例 配置文件的解析...

192100
来自专栏后台及大数据开发

docker:(4)利用WebHook实现持续集成

在项目调试测试阶段,可能经常需要重复上面的步骤,以便将最新代码部署到特定环境供测试人员或其他人员使用

13210
来自专栏Java 源码分析

SpringBoot 笔记 ( 一 ):启动流程

SpringBoot 笔记(一): 启动流程 1. 配置开发环境 1. 创建 Maven 项目 然后我们首先在项目里面加上编译环境,防止每一次更新 Maven ...

32340
来自专栏ImportSource

Spring Boot 2.0 新特性和发展方向

以Java 8 为基准 Spring Boot 2.0 要求Java 版本必须8以上, Java 6 和 7 不再支持。 内嵌容器包结构调整 为了支持react...

46090
来自专栏散尽浮华

jenkins配置记录(2)--代码发布流程

在我们的日常运维工作中,使用jenkins来完成业务代码发版上线是至关重要的一环。 前面已经提到在jenkins上添加用户权限的操作,今天重点说下如何在jenk...

69790
来自专栏架构专栏

编程实战篇——Spring Boot 自动配置实现

基于Spring Boot自动配置的思想封装起来,使其他Spring Boot项目引入后能够进行快速配置。

5610
来自专栏云计算

使用 Spring Boot 2.0,Eureka 和 Spring Cloud 的微服务快速指南

原文地址:https://dzone.com/articles/quick-guide-to-microservices-with-spring-boot-20...

5.6K30

扫码关注云+社区

领取腾讯云代金券