JUnit单元测试用例中使用Spring框架,之前我的使用方式很直接。
01
02
03
04
05
06
07
08
09
10
|
/**
* 用于需要用到Spring的测试用例基类
*
* @author lihzh
* @alia OneCoder
* @blog http://www.coderli.com
*/
@RunWith
(SpringJUnit4ClassRunner.
class
)
@ContextConfiguration
(locations = {
"/spring/applicationContext.xml"
})
public
class
SpringTest {}
|
在测试的过程中,有人提到,想要获取ApplicationContext实例。于是,添加了对ApplicationContext的注入
01
02
03
04
05
06
07
08
09
10
11
12
13
|
/**
* 用于需要用到Spring的测试用例基类
*
* @author lihzh
* @alia OneCoder
* @blog http://www.coderli.com
*/
@RunWith
(SpringJUnit4ClassRunner.
class
)
@ContextConfiguration
(locations = {
"/spring/applicationContext.xml"
})
public
class
SpringTest {
@Autowired
protected
ApplicationContext ctx;
|
其实,Spring中早已直接提供了更加方便使用的基类:AbstractJUnit4SpringContextTests。修改代码如下:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
/**
* 用于需要用到Spring的测试用例基类
*
* @author lihzh
* @alia OneCoder
* @blog http://www.coderli.com
*/
@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;
}
}
|