Весеннее тестирование с Mock Mvc в указанных репозиториях c - PullRequest
0 голосов
/ 06 февраля 2020

Я пытаюсь сделать тест с моим приложением с весенней загрузкой, используя 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}), но это не решило проблему.

...