Spring Mock Mvc использует разные URL в тестах - PullRequest
0 голосов
/ 10 января 2020

При интеграционном тестировании приложения с весенней загрузкой, mock Mvc использует несколько другой URL. Я получаю его из HttpServletRequest в моем контроллере, при тестировании он показывает это: http://localhost/v1/app/full/sales, а если я запускаю приложение, он показывает это: http://localhost/api/v1/app/full/sales

В контроллере настроен параметр basePath: basePath = "/v1/app"

server.servlet.context-path=/api указано и в application-test.properties, и в application.properties.

Вот аннотации теста, которые я использую:

@SpringBootTest(classes = {SvcBoot.class}, properties = {"spring.main.allow-bean-definition-overriding=true"})
@ContextConfiguration(classes = {JacksonTestConfiguration.class, ClockTestConfiguration.class})
@TestPropertySource(locations="classpath:application-test.properties")
@ActiveProfiles("test")

запрос выполняется так:

final MvcResult mvcResult = getMvc().perform(getContent().content(requestJsonString)
                .accept(MediaType.APPLICATION_JSON)
                .contentType(MediaType.APPLICATION_JSON))
                .andReturn();

Сначала я подозревал, что он не читает файл application-test.properties должным образом, поэтому он имеет этот параметр при нормальной работе, но не при тестировании. Поэтому я попытался добавить @TestPropertySource(locations="classpath:application-test.properties") в тест, но это не помогло.

Я использую TestNg, Spring-boot 2.1.6.

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