spring整合junit使用记录

参考地址:

[url]http://www.cnblogs.com/rainisic/archive/2012/01/22/spring_test_framework.html[/url]

1加入所需要的包

org.springframework.test-3.0.7.RELEASE.jar

JUnit4

以及项目所需要的包

spring的东西在这里下载http://www.springsource.org/download

junit的东西在这里下载https://github.com/KentBeck/junit/downloads

2测试类应该继承与AbstractJUnit4SpringContextTests或AbstractTransactionalJUnit4SpringContextTests

看具体的例子,

首先写一个BaseTest类,然后再写一个测试类,用测试类来继承BaseTest类,这样写的目的是避免每次写测试类都要加例如下面的东西,特别是如果需要加载的文件比较多时,这样写更好一点

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

BaseTest

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;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:beans.xml")
public class BaseTest extends AbstractJUnit4SpringContextTests {
	
	public BaseTest() {
		super();
	}
}

下面是测试类

Service1Test

import javax.annotation.Resource;

import org.junit.Test;

import com.test.BaseTest;


public class Service1Test extends BaseTest{
	@Resource
	private Service1 service1;
	
	@Test
	public void testMethod1(){
		service1.method1();
	}
	@Test
	public void testMethod2(){
		service1.method2();
	}
}

这样这个测试类就可以直接用junit来运行进行测试了。

备注:junit最好用带hamcrest版本的不然可能会出现下面的错误

java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing

然后spring中用到的包也最好是统一的某一个版本,不要测试的是一个版本,另外的是其它的版本,不然容易出现错误

相关推荐