Я пытаюсь проверить мой @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 о моих репозиториях?