SpringTest框架JUnit单元测试用例获取ApplicationContext实例的方法

转自:http://www.coderli.com/junit-spring-test-applicationcontext

JUnit单元测试用例中使用Spring框架,直接方式如下。

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(locations = { "/spring/applicationContext.xml" })

public class SpringTest {}

想要获取ApplicationContext实例。可以添加了对ApplicationContext的注入

RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(locations = { "/spring/applicationContext.xml" })

public class SpringTest {

 

@Autowired

protected ApplicationContext ctx;

Spring中早已直接提供了更加方便使用的基类:AbstractJUnit4SpringContextTests

@ContextConfiguration(locations = { "/spring/applicationContext.xml" })

public class SpringTest extends AbstractJUnit4SpringContextTests {

 

public <T> T getBean(Class<T> type) {

return applicationContext.getBean(type);

}

 

public Object getBean(String beanName) {

return applicationContext.getBean(beanName);

}

 

protected ApplicationContext getContext() {

return applicationContext;

}

 

}

本人补充:

若在静态类中需要引用只能使用如下方法:

public class TPlatformInfoTest extends TestBase{

    

    private static MyHttpClient TPlatformInfoDispose;

    

    @BeforeClass

    public static void setUpBeforeClass(){

        System.out.println("***********here init first***************");

        TPlatformInfoDispose = new MyHttpClient("platform");

        DataSourceContextHolder.setDbType("ds2");

        ApplicationContext ctx = new ClassPathXmlApplicationContext("classpath:WEB-INF/rest-*.xml");

        pfm = ctx.getBean(TPlatformInfoMapper.class);

        dim = ctx.getBean(TDeviceInfoMapper.class);

    }

你可能感兴趣的:(SpringTest框架JUnit单元测试用例获取ApplicationContext实例的方法)