我正在为spring mvc应用程序编写一些测试。
我得到的答复如下。
-> curl -X POST -H"Content-type:application/json; charset=utf-8" localhost:8080/mvc/addBlacklist.do -d '{"id": "1", "imsi": "test"}'
{"id":0,"imsi":"18192729090","name":"xiaoshao","monitors":null}
但是当我的测试就像这样。
Blacklist blackList = new Blacklist();
blackList.setId(0);
blackList.setImsi("18192729090");
blackList.setName("xiaoshao");
when(blacklistService.add(any())).thenReturn(blackList);
mockMvc.perform(post("/addBlacklist")
.content(TestUtil.convertObjectToJsonBytes(blackList))
.contentType(TestUtil.APPLICATION_JSON_UTF8))
.andExpect(status().is(200))
.andExpect(jsonPath("$.imsi", is("xiaoshao")));
它会发出这样的异常。
java.lang.NoClassDefFoundError: com/jayway/jsonpath/InvalidPathException
at org.springframework.test.web.servlet.result.JsonPathResultMatchers.<init>(JsonPathResultMatchers.java:53)
答案 0 :(得分:1)
您缺少测试的依赖项。把它添加到你的maven pom。
<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path</artifactId>
<version>2.2.0</version>
<scope>test</scope>
</dependency>
答案 1 :(得分:0)
使用此:
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;