编写UnitTestBase 类,如下使用的myeclipse junit4
package com.test;
import org.junit.After;
import org.junit.Before;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class UnitTestBase {
private ClassPathXmlApplicationContext context;
private String stringXmlPath;
public UnitTestBase() {};
public UnitTestBase(String stringXmlPath) {
this.stringXmlPath = stringXmlPath;
};
@Before
public void before(){
if(stringXmlPath==null||stringXmlPath.equals("")){
stringXmlPath = "classPath*:spring-*.xml";
}
try{
context = new ClassPathXmlApplicationContext(stringXmlPath.split("[,\\s]+"));
context.start();
}catch(Exception e){
e.printStackTrace();
}
}
@After
public void after(){
context.destroy();
}
@SuppressWarnings("unchecked")
protected <T extends Object>T getBean(String beanId){
return (T)context.getBean(beanId);
}
protected <T extends Object>T getBean(Class<T> clazz){
return (T)context.getBean(clazz);
}
}
编写测试类:测试类要求继承UnitTestBase 类,
并且加上注解@RunWith(BlockJUnit4ClassRunner.class)
具体测试方法上面一定要有@Test注解
package com.anno.test;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.BlockJUnit4ClassRunner;
import com.test.UnitTestBase;
@RunWith(BlockJUnit4ClassRunner.class)
public class MyTestAnno extends UnitTestBase{
public MyTestAnno(){
super("classpath:applicationContext.xml");
}
@Test
public void testAnno(){
LoveInteface love = super.getBean("love1");
love.sayAnno("篮球"+love.hashCode());
love = super.getBean("love1");
love.sayAnno("篮球"+love.hashCode());
}
}