Я хочу протестировать один контроллер, который зависит от 1 службы и 1 репо, используя аннотацию @WebMvcTest. Во всем приложении есть еще 5 сервисов / репозиториев, которые я бы не хотел высмеивать в этом модульном тесте.
Я издевался над необходимыми 2 сервисами / репо. Здесь я тестирую простую конечную точку, которая даже не имеет доступа к репо, но когда я пытаюсь выполнить модульное тестирование этого контроллера для этого конкретного контроллера при весенней загрузке, как это
@RunWith(SpringRunner.class)
@WebMvcTest(WebController.class)
public class LoginTest {
@MockBean
private CustomerRepository customerRepository;
@MockBean
private CustomerService customerService;
private MockMvc mockMvc;
@Test
public void serverRunning() throws Exception {
this.mockMvc.perform(get("/"))
.andExpect(status().isOk())
.andExpect(content().string("Server is running"))
.andDo(print());
}
}
я получил
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'restaurantRequestRepository': Cannot create inner bean '(inner bean)#60b4d934' of type [org.springframework.orm.jpa.SharedEntityManagerCreator] while setting bean property 'entityManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#60b4d934': Cannot resolve reference to bean 'entityManagerFactory' while setting constructor argument; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'entityManagerFactory' available
Примечание. Если я использую @SpringBootTest, он работает, но я не хочу создавать экземпляр всего приложения для простого теста.