Spring与junit测试

1.我们知道无论在J2SE还是android中都有junit测试,利用junit能够帮助方便测试代码。在之前的博客中我也写了一些J2SE的一些junit测试例子,今天对于Spring中junit小小的讨论一下。

这个Spring测试需要的jar包:

     spring-test-3.2.0.RELEASE.jar

2.Spring和Junit的关系图

左边的采用传统的方式,即一般的J2SE的方式测试代码,这种情况会有些问题:

(1).每一个测试都要启动Spring,

(2).这种情况下,是测试代码管理Spring容器,而与Spring容器管理测试代码想背了。

或许还有其他的情况,因此应该采用右边的方式进行junit测试,同时也正验证了Spring框架图,为啥Test在最下面

3.简单的案例:

package cn.wwh.www.spring.bbb.test;

/**
 *类的作用:
 *
 *
 *@author 一叶扁舟
 *@version 1.0
 *@创建时间: 2014-9-21   下午03:22:26
 */
public class HelloWorld {
	public  void show() {
		System.out.println("Hello World! This is my first Spring!");

	}
}

测试案例:

package cn.wwh.www.spring.bbb.test;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

/**
 *类的作用:测试在Spring中写测试框架
 *
 *
 *@author 一叶扁舟
 *@version 1.0
 *@创建时间: 2014-9-21   下午10:19:41
 */
//表示先启动Spring容器,把junit运行在Spring容器中
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
public class SpringtestTest {

	//自动装配Spring容器
	@Autowired
	private BeanFactory factory;

	@Test
	public void testBeanFactory() throws Exception {
		 HelloWorld  world = factory.getBean("helloWorld",HelloWorld.class);
		 world.show();

	}
}

SpringtestTest-context.xml配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="
		http://www.springframework.org/schema/beans
		http://www.springframework.org/schema/beans/spring-beans.xsd">
	<bean id="helloWorld" class="cn.wwh.www.spring.bbb.test.HelloWorld"/>

</beans>

注意:

(1)[email protected](SpringJUnit4ClassRunner.class)

     @ContextConfiguration

     @Autowired

     @Test

     这些都是测试标签

(2)[email protected]去找配置文件,默认从当前路径去找

如果置文件名= 当前测试类名-context.xml,就可以在当前路径找.可以省略如上面的SpringtestTest-context.xml,测试类为:SpringtestTest.java

如果不是按照约定写的,测需要按照加载路径的格式写:

@ContextConfiguration("classpath:cn/wwh/www/spring/bbb/test/SpringtestTest-context.xml")

时间: 2024-10-26 06:42:53

Spring与junit测试的相关文章

Struts2+Spring+Mybatis+Junit 测试

Struts2+Spring+Mybatis+Junit 测试 博客分类: HtmlUnit Junit Spring 测试 Mybatis Java代码   package com.action.kioskmonitor; /** * Junit群体测试Struts2 .spring.Mybatis */ import static org.junit.Assert.assertNotNull; import java.util.List; import java.util.UUID; imp

Spring整合junit测试

本节内容: Spring整合junit测试的意义 Spring整合junit测试 一.Spring与整合junit测试的意义 在没整合junit之前,我们在写测试方法时,需要在每个方法中手动创建容器,获取对象,比如下面的代码,红色部分都是重复的代码.如果要测试很多功能的话,每次都得手动去创建容器,很麻烦.如果你测试的两个功能中用到某个相同的对象,获取对象的代码也得写一遍. public class test { @Test public void test1(){ //1.创建容器对象(创建Sp

Spring整合Junit测试框架

在工作中,很多项目是基于ssm框架的web项目,在编写完代码需要进行测试.但是对象都交由Spring容器进行对象管理之后,测试变得复杂了.因为所有的Bean都需要在applicationContext.xml中加载好,之后再通过@Resource去取得.如果每次都要整个业务流做的差不多了再去测试,这样效率很低,很多同学可能是通过web端发请求进行触发测试.有时候,我们仅仅是需要测试我们dao层sql是否正确,但是确要重启服务器,在浏览器发送请求进行测试,或者写个定时器触发测试.这很费事费时.所以

原创:Spring整合junit测试框架(简易教程 基于myeclipse,不需要麻烦的导包)

我用的是myeclipse 10,之前一直想要用junit来测试含有spring注解或动态注入的类方法,可是由于在网上找的相关的jar文件进行测试,老是报这样那样的错误,今天无意中发现myeclipse本就自带了 spring基于junit的测试框架,而且非常好用. 1.废话不多说,首先添加 测试框架的 类库:项目-->buildpath-->addlibraries-->myelipse libraries-->Spring 2.5 testing  support librar

Spring之junit测试集成

简介 Spring提供spring-test-5.2.1.RELEASE.jar 可以整合junit. 优势:可以简化测试代码(不需要手动创建上下文,即手动创建spring容器) 使用spring和junit集成的步骤 1.导入jar包 2.创建包com.igeek.test,创建类SpringTest 通过@RunWith注解,使用junit整合spring 通过@ContextConfiguration注解,指定spring容器的位置 3.通过@Autowired注解,注入需要测试的对象 在

Spring项目JUnit测试报错ClassNotFoundException解决、

MyEclipse项目上有红色感叹号,各包显示正常.用JUnit测试部分能运行,部分报错,报错如下: Class not found n_jdbc.UserDaoTestjava.lang.ClassNotFoundException: n_jdbc.UserDaoTest at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native

基于Spring的可复用的Junit测试类的设计

平时我们做SSH项目的时候避免不了要做单元测试,而且很多时候,我们是不希望单元测试的结果对真正的数据库有影响的,那么我们就需要使用事务来管理了. JUnit测试基类如下: package com.sms.test.base; import org.junit.runner.RunWith; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.Te

junit测试,spring中使用

很久没用junit测试了,今天在spring框架下面使用junit测试发现怎么都不行 网上查了一些资料才发现我的项目里面少了一些jar包,现在将这个jar包信息放上去,以免以后又忘了 <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope&

Spring MVC参数化测试 - Junit Parameterized

参考文章:Spring MVC全注解配置 - 无web.xml 单元测试的目的,简单来说就是在我们增加或者改动一些代码以后对所有逻辑的一个检测,尤其是在我们后期修改后(不论是增加新功能,修改bug),都可以做到重新测试的工作.以减少我们在发布的时候出现更过甚至是出现之前解决了的问题再次重现. Spring MVC的测试往往看似比较复杂.其实他的不同在于,他需要一个ServletContext来模拟我们的请求和响应.但是Spring也针对Spring MVC 提供了请求和响应的模拟测试接口,以方便