java - MockMvcResultMatchers - jsonPath() 与 content()

标签 java json spring spring-restcontroller mockmvc

我正在使用 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/

相关文章:

java - 我无法在我的应用程序中显示 AdMob 横幅

java - Java 中的智能指针和引用计数

javascript - 拒绝从 '*' 执行脚本,因为它的 MIME 类型 ('application/json' ) 不可执行,并且严格的 MIME 类型 che

spring - 使用 Spring Data REST 公开枚举

java - 如何更改 Spring Boot 错误响应中的状态代码?

java - 什么时候应该使用Java Extension Class Loader?

java - 如何安全地删除 ArrayList 上的逗号?

java - 如何深入了解Java Json变量(Json Simple)

java - Struts 2 Json 结果 Hibernate LazyInitialization - 如何在 hibernate session 中反序列化

java - JUnit 和 Spring 的 DAO 层测试策略