Spring Junit测试问题

时间:2012-03-29 11:14:04

标签: spring junit4

我正在Spring中创建Junit测试用例。

private static BeanFactory servicefactory = null;
private static BookingProcessService bookingProcessService;
@BeforeClass
public static void setUpBeforeClass() throws Exception{
    try{
        String[] configFiles = {"applicationcontext-Service.xml","applicationcontext-Hibernate.xml","applicationContext-dao.xml"};
        ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext(configFiles);
        servicefactory = (BeanFactory) appContext;
        bookingProcessService = (BookingProcessService) servicefactory.getBean("bookingProcessService");            
    }catch (Exception e){
        e.printStackTrace();
    }
}

这里的BookingProcessService是一个接口,它的实现类是BookingProcessServiceImpl.java。 在spring配置文件中,没有为其定义bean id。 有没有什么方法可以使用'bookingProcessService'来调用我的测试方法中的BookingProcessImp.java中编写的实际方法定义?

1 个答案:

答案 0 :(得分:0)

如果你正在配置这个测试,我建议使用Annotations,会更清楚。

通常在“applicationcontext-Service.xml”中必须使用Implementation定义bean,并且是使用此类接口的类。

这样你就不会将代码与实现结合起来。

在这个例子中,简单必须做下一个:

 @Autowired
 private BookingProcessService bookingProcessService;

来自Spring的注释@Autowired将从您的xml配置“applicationcontext-Service.xml”执行IOC。