Я пытаюсь сделать тест с моим приложением с весенней загрузкой, используя Mock Mvc, я новичок во всем этом, поэтому я даже не уверен, что наши тесты выложены правильно. У нас есть n
репозитории и контроллер для каждого репозитория. Наши тесты имеют следующую структуру:
@RunWith(SpringRunner.class)
@WebMvcTest(controllers = Repo1Controller.class)
public class Repo1ControllerTest
{
@Autowired
private MockMvc mockMvc;
@MockBean
private Repo1Repository repository;
//.... Tests and such
}
@RunWith(SpringRunner.class)
@WebMvcTest(controllers = Repo2Controller.class)
public class Repo2ControllerTest
{
@Autowired
private MockMvc mockMvc;
@MockBean
private Repo2Repository repository;
//.... Tests and such
}
Мое приложение имеет несколько репозиториев:
public interface Repo1 extends JpaRepository<Type1, Long> {
//Don't need anything in here
}
public interface Repo2 extends JpaRepository<Type2, Long> {
//Don't need anything here either
}
Каждый класс тестирования использует те же репозитории, что и контроллер, для которого он тестирует. Однако. Я получаю ошибку could not get applicationContext
, при этом первый тестовый класс жалуется на то, что для repo2repository недоступен компонент, а второй тестовый класс жалуется, что для репозитория недоступен bean-компонент.
Мне интересно, есть ли способ заставить Mock Mvc игнорировать существование репозиториев, которые он не использует? Я попытался использовать @EnableAutoConfiguration(exclude={RepoNRepository.class})
, но это не решило проблему.