最“高大上”的Spring测试:Spring Test
我想给大家介绍一款非常实用、且高端大气上档次的spring测试,在这里,我要强烈推荐使用Spring的Test Context框架,为什么呢?俗话说,“货比三家不上当”,要搞清楚这个问题,我们先来看一看传统的Spring测试:

传统的Spring测试
我们开发一个Spring的HelloWorld。
第一步:准备开发Spring依赖的jar包

第二步:定义一个简单的POJO类:HelloWorld,如下:

第三步:阅读Spring中帮助文档(xsd-config.html),编写配置文件:applicationContext.xml:

第四步:引入junit4.x的单元测试环境(),编写Spring的测试类:HelloTest,如下。

运行测试类,输出结果:

传统Spring测试带来的问题
- 问题一、导致Spring 容器多次初始化,性能开销很大。
- 问题二、不应该由测试代码管理Spring容器,应该是由Spring容器来管理测试代码。
- 问题三、无法独立于服务器完成事务测试等。
传统的Spring测试(如下图):

正确的Spring测试(如下图):

Spring Test的优势
- 使用Spring Test 有助于减少启动容器的开销,提高测试效率。
- Spring Test可以直接使用@AutoWired注入Spring容器或bean。
- Spring Test还支持事务测试,集成测试等。
搭建Spring的Test环境
步骤一、依赖jar:
Spring4.x需要依赖的单元测试得是最新的junit4.12,Eclipse自带的junit4.8不支持,同时从Spring4.x开始,还得依赖AOP包的支持。

重新准备测试的配置文件:

步骤二、Spring测试使用到的三个注解:
①:@RunWith:表示先启动Spring容器,把junit运行在Spring容器中;
②:@ContextConfiguration("classpath:applicationContext.xml"):
表示从CLASSPATH路径去加载资源文件;
③:@Autowired:表示自动装配,自动从Spring容器中取出对应bean或者获取容器对象;

若,省略@ContextConfiguration的属性内容,如下:

则默认去找:当前测试类名-context.xml配置文件,如:HelloWorldTest-context.xml。

最“高大上”的Spring测试:Spring Test的更多相关文章
- 使用JUnit4测试Spring
测试DAO import static org.junit.Assert.*; import org.junit.Before; import org.junit.Ignore; import org ...
- 就是这么简单(续)!使用 RestAssuredMockMvc 测试 Spring MVC Controllers
就是这么简单(续)!使用 RestAssuredMockMvc 测试 Spring MVC Controllers 转载注明出处:http://www.cnblogs.com/wade-xu/p/43 ...
- web项目中 集合Spring&使用junit4测试Spring
web项目中 集合Spring 问题: 如果将 ApplicationContext applicationContext = new ClassPathXmlApplicationContext(& ...
- 一个简单的Spring测试的例子
在做测试的时候我们用到Junit Case,当我们的项目中使用了Sring的时候,我们应该怎么使用spring容器去管理我的测试用例呢?现在我们用一个简单的例子来展示这个过程. 1 首先我们新建一个普 ...
- Spring入门(二)— IOC注解、Spring测试、AOP入门
一.Spring整合Servlet背后的细节 1. 为什么要在web.xml中配置listener <listener> <listener-class>org.springf ...
- (转)编写Spring的第一个案例并测试Spring的开发环境
http://blog.csdn.net/yerenyuan_pku/article/details/52832145 Spring4.2.5的开发环境搭建好了之后,我们来编写Spring的第一个案例 ...
- Spring-----注解开发和Spring测试单元
一.注解开发 导入jar包;spring-aop-xxx.jar 导入约束:(在官方文档xsd-configuration.html可找) <beans xmlns="http://w ...
- Spring、Spring Boot和TestNG测试指南 - 使用Spring Boot Testing工具
Github地址 前面一个部分讲解了如何使用Spring Testing工具来测试Spring项目,现在我们讲解如何使用Spring Boot Testing工具来测试Spring Boot项目. 在 ...
- Spring 系列: Spring 框架简介 -7个部分
Spring 系列: Spring 框架简介 Spring AOP 和 IOC 容器入门 在这由三部分组成的介绍 Spring 框架的系列文章的第一期中,将开始学习如何用 Spring 技术构建轻量级 ...
随机推荐
- TP5.1:facade静态代理
THINKPHP中有很多很多的facade静态代理,这些静态代理的位置在:thinkphp\think\facade文件夹下 1.在app\commom中新建一个文件,名为:Test.php,表示被代 ...
- MySQL入门很简单: 14MySQL日志
二进制日志: 以二进制文件的形式记录了数据库中的操作,但不记录查询语句 错误日志: 记录MySQL服务器的启动,关闭和运行错误等信息 通用查询日志: 记录用户登录和记录查询的信息 慢查询日志: 记录执 ...
- 【CF660E】Different Subsets For All Tuples(组合数学)
点此看题面 大致题意: 有一个长度为\(n\)的数列,每个位置上数字的值在\([1,m]\)范围内,则共有\(m^n\)种可能的数列.分别求出每个数列中本质不同的子序列个数,然后求和. 一些分析 首先 ...
- MySQL 数据库和一些常用命令的使用
常用命令总结: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 3 ...
- nodejs 的一些PHP函数库
http://locutus.io/php/ nodejs 的一些PHP函数库 PHP extensions in JavaScript array array_change_key_case arr ...
- removing vmware debugger from visual studio
removing vmware debugger from visual studio by Ross on 十月 14, 2010 at 5:30 下午 under Visual Studio | ...
- 旧文备份:VC中嵌入NASM编写的汇编函数
在公司开发的RT下没法使用C库,并且替代库函数没有几个,需要用到setjmp和longjmp函数,没办法,只能自己想办法了,上sourceforge淘换到一个小日本的工程,提供这两个函数的替代源码,名 ...
- vue项目不能同时被localhost和ip地址同时访问的方法
方法1.将index.js中的host的值改为‘0.0.0.0’ 方法2.修改package.json中script下dev的值,在后面加入--host 0.0.0.0 也可以解决
- FreeBSD--如何最有效率的安装软件
Freebsd 下如何最有效率的安装软件 From <https://www.cnblogs.com/apexchu/p/4131821.html> FreeBSD的默认下载工具是fetc ...
- python__系统 : socket_UDP相关
socket.socket() 可以创建一个套接字: from socket import * from threading import Thread udp_socket = None dest_ ...