由于历史代码的原因,产品中部分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() {