JsonPathRequestMatchers使用MockMVC到ResultMatcher

时间:2017-06-23 10:32:11

标签: spring unit-testing junit jsonpath mockmvc

我正在使用MockMVC测试todo控制器:

            mockMvc.perform(MockMvcRequestBuilders.get("/toDos/")
                    .with(user("user").password("password").roles("ADMIN"))
                    .content("{ \"saved_date\": \"2010-01-01\"}")
                    .accept(MediaType.APPLICATION_JSON_VALUE))
                    .andExpect((ResultMatcher) jsonPath("$.id").doesNotExist())
                    .andExpect(status().isOk())
                    .andExpect( content().contentType("application/json"));
        }

我一直收到这个错误:

java.lang.ClassCastException: org.springframework.test.web.client.match.JsonPathRequestMatchers$5 cannot be cast to org.springframework.test.web.servlet.ResultMatcher

我想删除强制转换为(ResultMatcher),但不知道如何创建一个测试Id存在的ResultMatcher。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

我想你想用:

var formData = new FormData();
formData.append("file", file);
xmlHttpRequest.send(formData);

...而不是:

org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath