SpringBoot mockmvc усекает часть значения переменной пути на контроллере - PullRequest
0 голосов
/ 24 мая 2019

У меня есть приложение SpringBoot со следующим методом Restful

Контроллер:

@GetMapping(path = "/getVersion/{version}", produces = "application/json;charset=utf-8")
public ResponseEntity getSpecific(@PathVariable("version") String version) throws Exception{
    // return ResponseEntity();
}

А вот соответствующий метод junit.

@Test
public void testGetSpecific() throws Exception{
     // Version - timestamp in Zulu format
     String path = "/getVersion/" + DateTimeFormatter.ISO_INSTANT.format(Instant.now());
     MvcResult result = mockMvc.perform(get(url + path).secure(false).contentType(MediaType.APPLICATION_JSON))
            .andExpect(status().isOk())
            .andReturn();
}

Проблема: Значение версии, отправленной во время тестирования, не совпадает на стороне контроллера.

Например: если мы отправим 2019-05-21T20: 18: 08.157Z в тестовом методе, мы получим 2019-05-21T20: 18: 08 на контроллере. И, таким образом, мы пропустим часть .157Z .

Я попробовал решения, описанные в следующих ссылках, но не повезло.

spring 4.1.1, mockmvc и не требуется URL-кодировка HTTP GET-запроса

RestTemplate, чтобы НЕ экранировать URL

Может ли кто-нибудь указать на то, что происходит за кулисами, и как решить эту проблему? Спасибо.

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