一个简单的Spring测试的例子
在做测试的时候我们用到Junit Case,当我们的项目中使用了Sring的时候,我们应该怎么使用spring容器去管理我的测试用例呢?现在我们用一个简单的例子来展示这个过程。
1 首先我们新建一个普通的java项目,引入要使用的几个jar包。
spring测试类的要用的jar包:
1.spring-test-3.2.4.RELEASE.jar
spring的核心jar包:
1.spring-beans-3.2.4.RELEASE.jar
2.spring-context-3.2.4.RELEASE.jar
3.spring-core-3.2.4.RELEASE.jar
4.spring-expression-3.2.4.RELEASE.jar
spring的依赖jar包:
1.commons-logging-1.1.1.jar2新建一个HelloWord类,包含一个公有的sayHelloWord方法,我们的测试主要就是测试这个类的方法:
package Domain;public class HelloWord { /**
*
* @Description: 方法 (这里用一句话描述这个类的作用)
* @author Jack
* @date 2016年6月15日 下午3:27:43
*/
public void sayHelloWord(){
System.out.println("Hello Word .....");
}
}
3 引入spring配置文件applicationContext.xml,配置bean

4 创建junit case 进行测试
package Test;import static org.junit.Assert.*; import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; import Domain.HelloWord; public class HelloWordTest { @Test
/**
*
* @Description: 普通的单元测试(这里用一句话描述这个类的作用)
* @author Jack
* @date 2016年6月15日 下午4:33:53
*/
public void test() {
HelloWord domain=new HelloWord();
domain.sayHelloWord();
} @Test
/**
*
* @Description: 加载spring容器获得bean进行测试 (这里用一句话描述这个类的作用)
* @author Jack
* @date 2016年6月15日 下午4:34:19
*/
public void testSpring(){
ApplicationContext ctx=new ClassPathXmlApplicationContext("resource/applicationContext.xml");
HelloWord word=(HelloWord) ctx.getBean("helloWord");
word.sayHelloWord(); }
}
上面测试用例中,一个是常规的方式(通过主动创建实例对象方式)的测试,一个是通过加载spring容器的方式获得容器提供的实例进行测试。
然而上述所说的方式却存在两个问题:
1.每一个测试都要重新启动spring容器
2.测试的代码在管理spring容器(与我们的目的相反)
为了达到目的我们就要用到spring-test-3.2.4.RELEASE.jar这个jar包里提供的方法去实现。测试的代码如下:
package Test;
import static org.junit.Assert.*;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import Domain.HelloWord;
//告诉spring容器运行在虚拟机中
@RunWith(SpringJUnit4ClassRunner.class)
//配置文件的位置
//若当前配置文件名=当前测试类名-context.xml 就可以在当前目录中查找@ContextConfiguration()
@ContextConfiguration("classpath:resource/applicationContext.xml")
public class SpringHelloWordTest {
@Autowired
//自动装配
private ApplicationContext cxf;
@Test
public void test() {
HelloWord word=(HelloWord) cxf.getBean("helloWord");
word.sayHelloWord();
}
}
上述就是整个简单的Spring测试例子大体过程。
一个简单的Spring测试的例子的更多相关文章
- 一个简单的Spring的AOP例子
目标对象的接口:IStudent.java 1 /** 2 * 3 */ 4 package com.dragon.study; 5 6 /** 7 * @author ...
- 【Spring】简单的Spring MVC入门例子
前言 测试特性需要搭建一个简单的Spring MVC的例子,遂记录之,只是例子,只为入门者之示例. 版本说明 声明POM文件,指定需引入的JAR. <properties> <spr ...
- 在eclipse中配置一个简单的spring入门项目
spring是一个很优秀的基于Java的轻量级开源框架,为了解决企业级应用的复杂性而创建的,spring不仅可用于服务器端开发,从简单性.可测试性和松耦合性的角度,任何java应用程序都可以利用这个思 ...
- 一个简单的spring boot程序
搭建一个spring boot项目十分的方便,网上也有许多,可以参考 https://www.cnblogs.com/ityouknow/p/5662753.html 进行项目的搭建.在此我就不详细介 ...
- 创建一个简单的Spring应用
环境已经安装完成,接下来创建一个简单的Spring应用. 创建Spring应用步骤: 创建一个maven项目 添加spring库依赖 创建Bean类 添加Bean的xml装配文件 创建主类 运行应用程 ...
- 构建一个简单的Spring Boot项目
11 构建一个简单的Spring Boot项目 这个章节描述如何通过Spring Boot构建一个"Hello Word"web应用,侧重介绍Spring Boot的一些重要功能. ...
- 【Spring Boot】创建一个简单的Spring Boot的 Demo
走进Spring Boot 文章目录 走进Spring Boot 环境搭建 新建Spring Boot项目 开始创建项目 配置JDK版本 和 Initializr Service URL 配置Proj ...
- 用Apache 里面的ab做一个简单的压力测试
我用的是xampp环境包. D:\xampp\apache\bin 进入这路径, 找到ab.exe 尝试双击打开ab.exe 但不能如愿, 这两个都是一个压力的测试软件, 是apache自带的; 好 ...
- JAVA WEB快速入门之通过一个简单的Spring项目了解Spring的核心(AOP、IOC)
接上篇<JAVA WEB快速入门之从编写一个JSP WEB网站了解JSP WEB网站的基本结构.调试.部署>,通过一个简单的JSP WEB网站了解了JAVA WEB相关的知识,比如:Ser ...
随机推荐
- ios开发——实用技术篇Swift篇&照片选择
照片选择 // MARK: - 选择照片 /*----- 选择照片 ------*/ @IBAction func addImageButtonClick() { let actionSheet = ...
- iOS开发——UI篇Swift篇&UIToolbar
UIToolbar class UIToolBarUISearchBar: UIViewController,UISearchBarDelegate { var titleString:String! ...
- postgrel 调试
http://blog.csdn.net/anzelin_ruc/article/details/8539411
- Repeater的ItemCreated和ItemDataBind的区别
Repeater 的ItemCreated的事件在第一次调用DataBind方法的时候触发,即在(IsPostBack==false)的时候才调用,当页面回滚是将不是调用该方法(错误的源头).而Ite ...
- MUI功能列表
打开App引导页面 - http://www.bcty365.com/content-146-4970-1.html 页面传值 - http://www.bcty365.com/content-1 ...
- 转:《JavaScript—之对象参数的引用传递》
转自:博客园 Wayou http://www.cnblogs.com/Wayou/p/javascript_arguments_passing_with_reference.html 变量 1.Ja ...
- Java微框架:不可忽视的新趋势--转载
原文:http://www.infoq.com/cn/news/2015/06/Java-Spark-Jodd-Ninja?utm_campaign=infoq_content&utm_sou ...
- SQL 必知必会-- 第1课:数据库基础和什么是SQL
第1课 了解SQL 1 1.1 数据库基础 11.2 什么是SQL 61.3 动手实践 71.4 小结 8 第一课主要是一些概念,具体笔记如下: 1,数据库(database):保存有组织的数据的容器 ...
- [Arduino] Leonardo 中文介绍
以下内容均翻译自arduino.cc,水平有限,如有错误请大家指正. 概述Arduino Leonardo是基于ATmega32u4一个微控制器板.它有20个数字输入/输出引脚(其中7个可用于PWM输 ...
- 【阿里云产品公测】一句话告诉你什么样的人该使用ACE,如何使用ACE
作者:阿里云用户小鸡咕咕 首先回应标题,这一句话就是:看完这篇帖子你就知道了. 前言 写在文章之前,我想先阐述一下写这篇文章的意义.可能大伙就要说了,写这篇文章不就是为了200的代金券吗?错, ...