@Autowired with JUnit tests

前端 未结 3 1705
情深已故
情深已故 2021-01-21 19:38

I´ve using JUnit but some tests have some issues, these tests have @Autowired annotation inside the Spring beans and when i reference them the beans that are @Autowired were alw

3条回答
  •  长发绾君心
    2021-01-21 20:05

    Looks to me like ParametersJCSCache is not a Spring managed bean. You need to make this a Spring bean and autowire it into the Manager

    @Service
            public class Manager implements IManager {
    
                    public boolean doSomething() throws Exception {
                         ParametersJCSCache parametersJCSCache = new ParametersJCSCache(); <-- You create a new (non Spring-managed) instance
                         String paramValue = parametersJCSCache.getParameter("XPTO");
                         ...
                    }
            }
    

    Change to:

    @Service
    public class Manager implements IManager {
    
          @Autowired
          private ParametersJCSCache  parametersJCSCache; 
    
            public boolean doSomething() throws Exception {
                 String paramValue = parametersJCSCache.getParameter("XPTO");
                 ...
            }
    }
    
    @Component
    public class ParametersJCSCache extends JCSCache {
    
          @Autowired
          private IParameterManager parameterManager;  //THIS IS NULL
    }
    

提交回复
热议问题