小工具      在线工具  汉语词典  css  js  c++  java

Spring Test 整合 JUnit 4 使用总结

Java 额外说明

收录于:92天前

这两天一直在做web开发,发现通过Spring进行对象管理后,测试变得复杂了。因为所有的bean都需要在applicationContext.xml中加载,然后通过@Resource获取。如果每次业务流程快完成的时候都要测试整个业务流程,这样会非常低效而且麻烦。单独写一个测试类太麻烦了。然后我想起Spring有一个测试框架,可以集成JUnit进行测试,于是就拿出来尝试了一下~

废话不多说,我们直接开始教程。

1.添加依赖包

要使用Spring的测试框架,需要添加以下依赖包:

2.创建测试源码目录和包

这里,建议创建一个与src同级的源文件目录,因为src中的类是为以后的产品准备的,这里的类只是为了测试。包的名称可以与src中的目录同名。这样,由于是在测试源码目录下,所以不会有冲突,而且名字会一模一样,更容易检索。

3.创建测试类

创建一个类进行测试。推荐名称为“被测试类名+Test”。

  测试类应该继承与 抽象JUnit4SpringContext测试 或 AbstractTransactionalJUnit4SpringContextTests

对于 AbstractJUnit4springcontextTests 和 AbstractTransactionalJUnit4SpringContextTests 类的选择:

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

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

如果不添加上面的bean,会抛出NoSuchBeanDefinitionException,表示No bean name 'transactionManager' is Defined。

4.配置测试类

在类之前添加以下内容来配置applicationContext.xml文件的位置。

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

5. 创建测试方法

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

在测试方法上方添加@Test

6. 通过 JUnit 4 执行

右键单击方法名称并选择“运行方式”→“JUnit 测试”

附录1:总体测试文件

复制代码

/* @(#) UserDaoTest.java
 * 
 * Date: 2012-1-16
 *
 * Author: Rainisic
 */
package com.mb.dao;

import javax.annotation.Resource;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.mb.entity.User;

/**
 * @author Rainisic
 *
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:applicationContext.xml")
public class UserDaoTest extends AbstractJUnit4SpringContextTests {
    
    @Resource
    private UserDaoInterface userDao;
    
    @Test
    public void saveTest() {
        
        User user1 = new User();
        user1.setUsername("rainisic");
        user1.setPassword("123456");
        user1.setNickName("rainisic");
        user1.setEmail("[email protected]");
        
        User user2 = new User();
        user2.setUsername("admin");
        user2.setPassword("123456");
        user2.setNickName("admin");
        user2.setEmail("[email protected]");
        
        User user3 = new User();
        user3.setUsername("test");
        user3.setPassword("123456");
        user3.setNickName("test");
        user3.setEmail("[email protected]");
        
        userDao.save(user1);
        userDao.save(user2);
        userDao.save(user3);
    }
}

复制代码

OK,现在你可以使用Spring的测试框架了。

转自:http://www.cnblogs.com/rainisic/archive/2012/01/22/Spring_Test_Framework.html

. . .

相关推荐

额外说明

在VMware虚拟机上安装VMware Tools出错的解决方案。设置共享文件夹以传输文件。

1、错误1: windows7安装VMware Tools时报错安装程序无法继续。本程序需要您将此虚拟机上安装的操作系统更新到SP1 原因:镜像文件不适合 解决办法:更改镜像源,换成带sp1的iso镜像。 下载地址:MSDN, 我告诉你 - 做一个安静的

额外说明

myEclipse中拷贝J2EE项目,发布到tomcat中名字一样的解决办法

选择项目,右键属性,MyEclipse-web下需该Web Context-root就可以,之后重新发布项目!

额外说明

使用mybaits插入数据异常:java.lang.IllegalArgumentException:No enum constant org.apache.ibatis.type.JdbcType

使用mybaits插入数据异常:java.lang.IllegalArgumentException:No enum constant org.apache.ibatis.type.JdbcType.INT 看异常信息,发现是因为数据类型有错误,修改为正

额外说明

uniapp——两种方式导航跳转和传参

QQ 1274510382 Wechat JNZ_aming 商业联盟 QQ群538250800 技术搞事 QQ群599020441 解决方案 QQ群152889761 加入我们 QQ群649347320 共享学习 QQ群674240731 纪年科技am

额外说明

AI 实战篇 |基于 AI开放平台实现 人脸识别对比 功能,超详细教程【附带源码】

- 博客主页:https://xiaoy.blog.csdn.net - 本文由 呆呆敲代码的小Y 原创,首发于 CSDN- - 学习专栏推荐:Unity系统学习专栏 - 游戏制作专栏推荐:游戏制作 -Unity实战100例专栏推荐:Unity 实战10

额外说明

JavaScript中类和对象的简介【配套七道习题】

1.JS中对象的实现: 定义一个手机对象: 手机包含两个属性:品牌,价格; 手机包含两个方法:打电话,发短信。 <script type="text/javascript"> var phone = { brand : "vivo", pr

额外说明

VC++给软件添加异常捕获模块生成dump文件(附源码)

VC++常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...)https://blog.csdn.net/chenlycly/article/details/124272585C++软件异常排查从入门到精通系列教程(专栏文章列表,欢迎订阅,持续更新.

额外说明

我曾经七次鄙视自己的灵魂

我曾经七次鄙视自己的灵魂 第一次,当它本可进取时,却故作谦卑; 第二次,当它在空虚时,用爱欲来填充; 第三次,在困难和容易之间,它选择了容易; 第四次,它犯了错,却借由别人也会犯错来宽慰自己; 第五次,它自由软弱,却把它认为是生命的坚韧; 第六次,当它鄙

额外说明

Spring Boot + Activiti 在浏览器显示工作流图

本篇承接上一篇: Spring Boot + Activiti 工作流框架搭建 Activiti 版本是:7.1.0.M6 总概 在Activiti 7 版本中,导出流程图的功能独立成一个独立的依赖包, 默认的导出格式是SVG的图片。所以,导出流程图的功

额外说明

6.5 池化层

是什么:池化层跟卷积层类似有个滑动窗口,用来取一个区域内的最大值或者平均值。 作用:卷积神经网络的最后的部分应该要看到整个图像的全局,通过池化(汇聚)操作,逐渐汇聚要取的像素,最终实现学习全局表示的目标。同时,卷积层的所有优势也被保留在了中间层。 特点:

ads via 小工具