Модульное тестирование Spring Services с реальным репозиторием в базе данных памяти - PullRequest
0 голосов
/ 01 октября 2019

Я пытаюсь проверить мой @Service с реальным объектом Spring Data Repository, который я пытаюсь использовать в базе данных памяти. Я использую примечание ниже в моем модульном тесте.

@ActiveProfiles("test")
@RunWith(SpringRunner.class)
@EnableJpaRepositories
@SpringBootTest(classes = {MyService.class})
public class T24PortfolioRequestHandlerTest {

    @Autowired
    private MyService myService;

    @Autowired
    private MyRepository myRepository;

    @Test
    public void handleRequest() {        
        String output = myService.handleRequest(testData, "123", "TEST");
        Assert.assertNotNull(output);
        Assert.assertEquals("TESTING", output);

    }
}

Я получаю ниже исключения при выполнении теста.

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.....respository.MyRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

Если я укажу MyRepository.class в SpringBootConfiguratio(classes={MyService.class, MyRepository.class}), я получаю ошибку ниже.

org.springframework.beans.BeanInstantiationException: Failed to instantiate [...respository.MyRepository]: Specified class is an interface

Есть ли другой способ рассказать Spring Boot о моих репозиториях?

...