SpringJUnit4和Log4j集成单元测试Demo
1、Eclipse创建Java工程并增加一个名为test的SourceFolder,并创建如下目录集
2、引入Jar包:Log4j1.2(common-logging可选)、Junit4.11、Spring4.0
3、创建基础测试包和基础测试类,增加注释@RunWith(SpringJUnit4ClassRunner.class)、@ContextConfiguration("classpath:/com/dedu/test/config/applicationContext.xml")
package com.dedu.test;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.log4j.PropertyConfigurator;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:/com/dedu/test/config/applicationContext.xml")
public class BaseTest {
public Log logger = LogFactory.getLog(BaseTest.class);
static {
PropertyConfigurator.configure("test/com/dedu/test/config/log4j.properties") ;
}
}
注:
①@ContextConfiguration("classpath:/com/dedu/test/config/applicationContext.xml")中为Spring启动时配置文件地址,加载后可依赖注入
②PropertyConfigurator.configure 中为日志的配置文件,依据上面的目录。可以打开Eclipse的工作目录看看,其中test,src和WebContent为同一目录,这里你也可以写成“WebContent/WEB-INF/...”
4、创建业务单元测试包和业务单元测试类,此包中所有类继承基础测试类BaseTest
package com.dedu.test.service;
import org.junit.Test;
import org.springframework.test.annotation.Rollback;
import com.dedu.test.BaseTest;
public class SpringTest extends BaseTest{
@Test
@Rollback(false)
public void startWork() {
System.out.println("Success");
}
}
5、之后单元运行时会出错,加入Jar包hamcrest-core-1.3.jar即可。