SpringBoot MockMVC在控制器上截断部分路径变量的值

时间:2019-05-24 19:53:58

标签: java spring spring-boot

我有一个具有以下Restful方法的SpringBoot应用程序

控制器:

@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 and do not want url encoding of HTTP GET request

RestTemplate to NOT escape url

有人能指出幕后发生的事情以及如何解决吗?谢谢。

0 个答案:

没有答案