我正在使用 org.springframework.test.web.servlet.MockMvc 对象测试 Spring REST Controller 。
我可以使用接受 Hamcrest 匹配器的 MockMvcResultMatchers.content()
方法或 MockMvcResultMatchers.jsonPath()
方法来验证响应 JSON。我想知道哪种方法更好以及最佳实践是什么?由于结构复杂,Hamcrest 匹配器似乎很难阅读,并且使用 content()
时,必须将长 JSON 外部化为单独的文件(但恕我直言,这没什么大不了的)。我应该选择一种选择而不是另一种选择,还是这完全是个人的事情?
最佳答案
当您的响应不是 JSON 时,您可以使用 content()
。 IE。如果响应是纯文本。
jsonPath()
为您提供了更多检查响应的机会。
例如
您只需检查特定字段;
您需要检查 json-array,但您不关心顺序;
您比较更大/更少,但不完全匹配,
关于java - MockMvcResultMatchers - jsonPath() 与 content(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52365166/