Тест интеграции Springboot - нежелательные издевательства - PullRequest
2 голосов
/ 28 июня 2019

Я пытаюсь написать интеграционный тест для приложения SpringBoot. код выглядит примерно так:

@RunWith(SpringRunner.class)
@SpringBootTest(classes = {Application.class, MyTestConfig.class})
@ActiveProfile("test")
class MyIntegrationTest {

@Autowire
ServiceInterface serviceA;

}

Я заметил, что applicationContext загружает некоторые служебные бины как mockito mocked-объект, который на самом деле не отвечает цели Интеграционного теста, так как не выполняет часть кода. Может кто-нибудь подсказать, что тут может быть не так. Обратите внимание, что некоторые службы подключены правильно, но некоторые из них подвергаются насмешкам. Я не вижу никакой логической причины, по которой они ведут себя по-разному, поскольку они реализованы одинаково. Я использую весеннюю загрузку 2.0.3

Уже пробовал.

Удален MyTestConfig.class, но проблема остается той же. Даже если я использую @SpringBootTest (classes = {Application.class, MyProblematicServiceImpl.class}), он по-прежнему возвращает макет объекта, где бы он ни был автоматически подключен. MyProblematicServiceImpl - это пустой класс, аннотированный @Service.

Ответы [ 2 ]

1 голос
/ 07 июля 2019

Продвижение из комментариев, так что ответили.

Приложение приводит к сканированию компонента, которое выбирает имеющуюся тестовую конфигурацию.Возможно, вам придется исключить некоторые тестовые конфигурации.

Spring Boot предоставляет @TestConfiguration для решения этой проблемы.

1 голос
/ 28 июня 2019

Если посмотреть на документы , если вы установите для параметра webEnvironment в аннотации SpringBootTest значение, отличное от MOCK, по умолчанию, тогда он запустит реальную веб-среду.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...