Search code examples
javaspring-bootspring-data-elasticsearch

Unable to inject repository in test for spring-data-elasticsearch


Unable to Autowired FooRepository, its always set to null

Config.java class

@Configuration
@EnableElasticsearchRepositories(basePackages = "com.foo.repository")
public class Config extends AbstractElasticsearchConfiguration {

Test class

@SpringIntegrationTest
@ContextConfiguration(classes = { FooRepositoryTest.ConfigTest.class })
public class FooRepositoryTest {

    @Configuration
    @Import({ Config.class })
    @EnableElasticsearchRepositories(basePackages = "com.company.repository")
    static class ConfigTest {}

    @Autowired FooRepository repository;
..
}

Solution

  • Looking at the annotation documentation, this is how it is used:

    @RunWith(SpringRunner.class)
    @SpringIntegrationTest
    public class MyIntegrationTests {
    
      @Autowired
      private MockIntegrationContext mockIntegrationContext;
    
    }
    

    In your case the annotation @RunWith(SpringRunner.class) is missing