最“高大上”的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。

时间: 2024-08-09 05:40:23

最“高大上”的Spring测试:Spring Test的相关文章

spring测试父类,使用junit-4.4.jar,spring-test.jar

@ContextConfiguration(locations = "classpath:conf/applicationContext.xml") @RunWith(SpringJUnit4ClassRunner.class) @Transactional @TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true) public abstr

就是这么简单(续)!使用 RestAssuredMockMvc 测试 Spring MVC Controllers

就是这么简单(续)!使用 RestAssuredMockMvc 测试 Spring MVC Controllers 转载注明出处:http://www.cnblogs.com/wade-xu/p/4311205.html 接我前面一篇文章关于RestAssured测试Restful web service的, RestAssured还有一个功能, 使用RestAssuredMockMvc 单元测试你的Spring MVC Controllers, 这个MockMvc 是建立在Spring Moc

Spring 测试

测试是开发工作中必不可缺的部分.单元测试只针对当前开发的类和方法进行测试,可以简单通过模拟依赖来实现,对运行环境没有依赖:但是仅仅进行单元测试是不够的,它只能验证当前类或方法能否正常工作,而我们想要知道系统的各个部分组合一起是否能正常工作,这就是集成测试存在的意义. 集成测试一般需要来自不同层的不同对象的交互,如数据库.网络连接.Ioc容器等.其实我们也经常通过运行程序,然后通过自己操作来完成类似于集成测试的流程.集成测试为我们提供了一种无须部署或运行程序来完成验证系统各部分是否能正常协作工作的

web项目中 集合Spring&使用junit4测试Spring

web项目中 集合Spring 问题: 如果将 ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); HelloService helloService = (HelloService) applicationContext.getBean("helloService"); helloService.sayHello(

Spring 测试框架运行

记得上一次弄Spring测试框架是两个月前,当时弄了好久也没弄出来,然后就这么样了, 今天时2016年6月28号,不知怎么就弄出来了,真是...捉摸不透. 先上链接:http://blog.csdn.net/yaerfeng/article/details/25368447,这个链接重点看后半部分就行了. 步骤: 然后,需要在相应目录下,有个配置文件,如本例中:Hello-context.xml(或者 hello-context.xml),其中hello 为测试类名,这个配置文件里包含WEB系统

Spring测试框架JUnit搭建测试环境 不通过web服务器 初始化spring bean对象

直接使用 JUnit 测试 Spring 程序存在的不足 需要使用硬编码方式手工获取 Bean:在测试用例中,我们需要通过 ApplicationContext.getBean() 的方法从 Spirng 容器中获取需要测试的目标 Bean,并且还要进行造型操作. 数据库现场容易遭受破坏:测 试方法可能会对数据库记录进行更改操作,破坏数据库现场.虽然是针对开发数据库进行测试工作的,但如果数据操作的影响是持久的,将会形成积累效应并影响到 测试用例的再次执行.举个例子,假设在某个测试方法中往数据库插

使用junit4测试spring项目中service方法

使用junit4测试项目中service方法 1 import java.util.HashMap; 2 import java.util.List; 3 import java.util.Map; 4 5 import javax.annotation.Resource; 6 7 import org.junit.Test; 8 import org.junit.runner.RunWith; 9 import org.springframework.test.context.ContextC

Spring入门(二)— IOC注解、Spring测试AOP入门

一.Spring整合Servlet背后的细节 1. 为什么要在web.xml中配置listener <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> 配置listener主要是为了捕获项目发布 | 服务器启动的契机 ,为了解析xml , 创建工厂. 这个listener是spring官方提供

spring测试出错:Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name &#39;org.springframework.web.servlet.resource.ResourceHttpRequestHandler#0&#39;:

解决办法 这里找不到根路径,也就找不到Spring-config.xml的配置,所以加上更改根路径的注解@WebAppConfiguration(“src/main/resources”)就解决了 1 @RunWith(SpringJUnit4ClassRunner.class) 2 @WebAppConfiguration("src/main/resources") //加上这个注解完美解决 3 @ContextConfiguration(locations = {"cla