首页 > 代码库 > 【转】SpringTest框架JUnit单元测试用例获取ApplicationContext实例的方法

【转】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 { @Autowiredprotected 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实例的方法