Spring @ContextConfiguration

java, junit4, spring, spring-mvc, unit-testing

Solution

Try

@ContextConfiguration(locations = { "classpath:/META-INF/spring/applicationContext.xml" })

Honestly I would step away from the xml and go this route. Change

@ContextConfiguration(locations = { "/META-INF/spring/applicationContext.xml" })

to

@ContextConfiguration(classes = { FloorServiceTestConfig.class })

And create the about class

@Configuration
public class FloorServiceTestConfig
{
    @Bean
    public FloorService floorService()
    {
          return new FloorService();
    }
}

This way when you need to mock your beans for class you're not testing it looks like below

@Configuration
public class FloorServiceTestConfig
{
    @Bean
    public FloorService floorService()
    {
          return Mockito.mock(FloorService.class);
    }
}

Problem

I am running the next test: ``` import static org.junit.Assert.assertEquals; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "/META-INF/spring/applicationContext.xml" }) public class FloorServiceTest { @Autowired private FloorService floorService; @Test public void testFloorService() { floorService.findById((long)1); } } ``` With the file `applicationContext.xml` under the folder `/APP/src/main/resources/META-INF/spring/` But it seems not to Autowire correctly the bean: ``` org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.confloorapp.services.FloorServiceTest': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.confloorapp.services.FloorService com.confloorapp.services.FloorServiceTest.floorService; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.confloorapp.services.FloorService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} ```

Original source