У меня есть приложение 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
Может ли кто-нибудь указать на то, что происходит за кулисами, и как решить эту проблему? Спасибо.