我在查看junit的输出时遇到错误,看来弹簧提供的JSON路径有问题。
java.lang.NoSuchMethodError: com.jayway.jsonpath.JsonPath.compile(Ljava/lang/String;[Lcom/jayway/jsonpath/Filter;)Lcom/jayway/jsonpath/JsonPath;
at org.springframework.test.util.JsonPathExpectationsHelper.<init>(JsonPathExpectationsHelper.java:53)
at org.springframework.test.web.servlet.result.JsonPathResultMatchers.<init>(JsonPathResultMatchers.java:43)
at org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath(MockMvcResultMatchers.java:133)
at com.name.registration.test.ServerConnectionTest.testLogin_Simple(ServerConnectionTest.java:20)
Junit代码
callApi(C.login, input)
.andExpect(jsonPath("$.success").value(true));
答案 0 :(得分:1)
尝试给你的json-path jar一个更高的导入顺序,因为它可能是使用通过spring或其他东西引入的旧版本。 如果这是一个maven项目,那么顺序将被视为pom中指定的顺序,所以我只想尝试将json-path移动为第一个依赖项。 如果它当前是传递依赖,我会尝试将其明确指定为直接依赖(再次在顶部)。
如果它不是maven项目,您还可以在IDE中订购依赖项。 (在Eclipse中:Java构建路径&gt;订单和导出。)