代码改变世界

SpringJUnit4ClassRunner拉起来的单元测试怎么装配Container实例

2016-01-27 11:08  chen.simon  阅读(944)  评论(0编辑  收藏  举报

由于历史代码的原因,产品中部分spring装配的实例需要通过Container的实现类(自定义的)去获取。那么当在单元测试中怎么实例化这个Container实现呢?

实例化Container实现需要ApplicationContext实例。

现在问题演变成怎么在test case中拿到ApplicationContext实例。

不想通过硬编码的形式搞,想通过注解搞,怎么弄呢?

其实很简单:SpringJUnit4ClassRunner拉起来的类,会对加了@Autowired的ApplicationContext字段做自动装配

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(value = {"/test/conf/applicationContext-test-common.xml"})
public class XXXServiceActionTest
{
    @Autowired
    private ApplicationContext applicationContext;
    
    @Before
    public void setUp()
        throws Exception
    {
        Application.getInstance().setContainer(new SpringContainer(applicationContext));
    }
    
    @Test
    public void test()
    {