我正在尝试使用以下
测试Spring MVC控制器的错误响应this.mockMvc
.perform(get("/healthChecks/9999"))
.andExpect(status().isNotFound())
.andExpect(jsonPath('error', is("Not Found")))
.andExpect(jsonPath('timestamp', is(notNullValue())))
.andExpect(jsonPath('status', is(404)))
.andExpect(jsonPath('path', is(notNullValue())))
但测试失败,例外:
java.lang.IllegalArgumentException: json can not be null or empty
在第一个jsonPath断言。
当我卷曲此网址时,我会收到以下信息:
{
"timestamp": 1470242437578,
"status": 200,
"error": "OK",
"exception": "gov.noaa.ncei.gis.web.HealthCheckNotFoundException",
"message": "could not find HealthCheck 9999.",
"path": "/healthChecks/9999"
}
有人可以帮我理解我做错了吗?
答案 0 :(得分:0)
您编写了错误的JsonPath表达式(For More Information LINK),使用$
作为根路径。在你的情况下,它应该看起来像:
.andExpect(jsonPath('$.error', is("Not Found")))
.andExpect(jsonPath('$.timestamp', is(notNullValue())))
.andExpect(jsonPath('$.status', is(404)))
.andExpect(jsonPath('$.path', is(notNullValue())))