2017-06-14 67 views
0

我有我的所有豆我在用于Mockito测试,以测试我的DAO的上下文文件。Mockito测试覆盖新的ClassPathXmlApplicationContext(路径)

private static ApplicationContext getCtx() { 
     synchronized (THREADMUTEX) { 
      if (ctx == null) { 
      try { 
      String[] paths = { "classpath*:application-Context.xml", 
            "classpath*:applicationContext-dao.xml" }; 
       ctx = new ClassPathXmlApplicationContext(paths); 
       System.out.println("context for laws --> " + ctx); 

      } catch (Exception e) { 
       } 
     } 
     } 
     return ctx; 
    } 

在运行测试我得到以下异常:

org.springframework.beans.factory.BeanCreationException:错误名为 'testataSource' 创建豆:init方法的调用失败

如何模拟new ClassPathXmlApplicationContext(paths);

+0

使用'SpringJUnit4ClassRunner' jUnit运行器和'@ ContextConfiguration'注释。不要自己初始化ApplicationContext –

回答

0

如果你会模拟new ClassPathXmlApplicationContext(springFiles)你根本就没有Spring Context。如果你不需要它们,那么只需在没有弹簧环境的情况下运行你的测试,并通过在代码中实例化它们来测试你的类。

但是,如果你需要春天的环境,那么你不应该嘲笑他们,你应该修复bean声明,并使其工作。

+0

感谢Andriy提供的信息。为了更好的理解,我已经更新了代码片段,你能否看看并且建议我作为需要完成的工作。 –