@Autowired mit JUnit-tests.

Ive mit JUnit, aber einige tests haben einige Probleme, diese tests haben die @Autowired-annotation innerhalb der Spring-Bean und wenn ich mich auf Sie, die Bohnen, die @Autowired waren immer NULL.

Hier ist der Beispiel code:

     public class Test {

                 protected ApplicationContext ac;

                 @Before
                 public void setUp() {
                     ac = new FileSystemXmlApplicationContext("classpath:config/applicationContext.xml"
                     "classpath:config/test-datasources.xml");
                 }

                 @Test
                 public void testRun() throws Exception {
                        IManager manager =  (IManager)this.ac.getBean("manager");
                        manager.doSomething();
                 }
    }

    @Service
    public class Manager implements IManager {

            public boolean doSomething() throws Exception {
                 ParametersJCSCache parametersJCSCache = new ParametersJCSCache();
                 String paramValue = parametersJCSCache.getParameter("XPTO");
                 ...
            }
    }

    public class ParametersJCSCache extends SpringBeanAutowiringSupport {

          @Autowired
          private IParameterManager parameterManager;  //THIS IS NULL
    }

Beim aufrufen des Manager-Objekt die Feder erzeugt den proxy, sondern beim Zugriff auf die @Autowired parameterManager das Objekt null ist, und mit diesem Problem ich kann nicht testen, diese Methode.

Irgendeine Idee was dies verursacht? Warum wird das Objekt nicht bekommen, injiziert? Es funktioniert gut in den Kontext einer web-Anwendung, aber in der test-Kontext ist immer NULL.

InformationsquelleAutor bigster | 2014-10-20

Schreibe einen Kommentar