使用 spring-test-mvc jsonpath 测试返回 null

2023-12-10

我正在使用 Spring 的“spring-test-mvc”库来测试 Web 控制器。我有一个非常简单的控制器,它返回一个 JSON 数组。然后在我的测试中我有:

@Test
public void shouldGetAllUsersAsJson() throws Exception {
    mockMvc.perform(get("/v1/users").accept(MediaType.APPLICATION_JSON))
            .andExpect(content().mimeType(MediaType.APPLICATION_JSON))
            .andExpect(jsonPath("fName").exists());
}

上述测试返回:

java.lang.AssertionError: No value for JSON path: fName

为了快速检查我实际得到的结果,我运行了以下测试:

@Test
public void shouldPrintResults() throws Exception {
    mockMvc.perform(get("/v1/users").accept(MediaType.APPLICATION_JSON))
            .andDo(print());
}

它在正文中返回正确的 JSON 数组MockHttpServletResponse

我不知道为什么jsonPath看不见fName在 JSON 数组中。


如果你将 json 路径依赖添加到 maven,或者将 jar 添加到你的 lib,那么它就会工作。我认为 Spring 在最新的 Spring 3.2.0 RC1 版本中不包含 jsonPath 依赖项。我猜这对于 Spring-Test-MVC 独立项目来说也是一样的。

这是 Maven 的依赖关系:

<dependency>
    <groupId>com.jayway.jsonpath</groupId>
    <artifactId>json-path</artifactId>
    <version>0.8.1</version>
    <scope>test</scope>
</dependency>

您可能还需要 hamcrest 库才能使用 jsonPath("$.test").value("test")

<dependency>
    <groupId>org.hamcrest</groupId>
    <artifactId>hamcrest-library</artifactId>
    <version>1.3</version>
    <scope>test</scope>
</dependency>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 spring-test-mvc jsonpath 测试返回 null 的相关文章

随机推荐

  • 如何将 json 文件加载到 Angularjs 中以进行 ng-repeat

    我有一个简单的 json 文件 其中包含艺术家姓名列表 例如 Vincent van Gogh Leonardo da Vinci Pablo Picasso 我不知道如何将此外部 json 文件加载到 angularjs 数组中并在其上使
  • 用什么工具画动画网络图

    我想获得复杂图上随机游走的概率分布的动画 我目前使用 Python 和NetworkX用于图形的操作和步行动态的评估 我的目标是制作一个动画 例如 GIF 文件 其中图形的每个节点的大小与其度数 或其他拓扑属性 成正比 颜色与标量属性 概率
  • ObjectListView 强制转换异常(用于命中测试)

    我正在使用 Grammarian 的 ObjectListView 我将旧的列表视图更改为该视图 但我所做的只是填写项目 但是当应用程序启动并且我的鼠标位于列表视图上时 它立即抛出异常 System InvalidCastException
  • 在 SearchView 中放置进度微调器?

    我在我的 Activity 中使用 SearchView 当用户键入时 我正在向服务器执行搜索请求 我想表明一些活动正在发生 是否可以在 SearchView 中显示进度微调器 否则 人们如何处理这个问题 我们是否创建一个自定义操作栏父布局
  • python 右对齐

    我如何证明这段代码的输出是合理的 N int input case print case for i in range N case print case 您可以使用format with gt 右对齐 N 10 for i in rang
  • 非默认版本的 appspot.com 子域上的 SSL

    我想在我的 GAE 应用程序的非默认版本上使用 SSL 对于正常的https my app appspot com我知道我什么都不用做 不过我有另一个版本 该版本位于https v2 my app appspot comSSL 不起作用 它
  • 以正确的 1:1 比例在圆形边框中制作 Font Awesome 图标

    在某些情况下 如果图标的比例不是 1 1 则边框不再是圆形 这是一个例子 我目前正在使用 HTML socials a href i class fa fa facebook i a href i class fa fa twitter i
  • Javascript - 如何将原始对象传递给回调函数

    我遇到的问题专门针对 D3 js 但我之前也遇到过类似的问题 并且最终总是使用 hack 来解决它 我有一个包含对象数组的类 有一个功能可以从 CSV 文件添加新对象 使用d3 csv 该函数采用一个文件名和一个带有一个参数的回调函数 cs
  • 二叉树 - 取消引用指针[关闭]

    Closed 这个问题是无关 目前不接受答案 我只是想编写一个简单的二叉搜索树程序 用户可以在其中插入节点并以中序 前序或后序模式查看树中的所有节点 我的代码是 include
  • MySQL FIND_IN_SET 或等效项可以使用索引吗?

    如果我比较 explain select from Foo where find in set id 2 3 id select type table type possible keys key key len ref rows Extr
  • 使用 C++ 的 CPU ID - windows

    我想使用 C 获取我的计算机 Windows 的 CPU Id I used 这段代码为拿到它 为实现它 它输出类似的信息 For InfoType 0 CPUInfo 0 0x5 CPUInfo 1 0x756e6547 CPUInfo
  • 装箱/拆箱和类型转换有什么区别?

    装箱 拆箱和类型转换有什么区别 通常 这些术语似乎可以互换使用 装箱是指将不可空值类型转换为引用类型或将值类型转换为其实现的某个接口 例如int to IComparable
  • Node.js MongoDB collection.find().toArray 不返回任何内容[重复]

    这个问题在这里已经有答案了 虽然我发现了与我类似的问题 但我无法自己解决问题 在我的 models user 模型中 我想找到所有用户并将它们放入数组中 然后将该数组返回到控制器 我将在其中使用信息 这是我的代码 var mongoData
  • 在 React Native 中从 Firebase 数据库/存储加载并返回图像

    我有一个 Firebase 应用程序设置 其中包含实时数据库中的一系列项目 每个项目都有一个imagePath节点 包含 Firebase 存储 URI 例如 gs bucket images stars jpg 项目数组用于
  • JPanel 上的 KeyListener 随机无响应

    我的项目中的默认 Java KeyListener 遇到问题 我注意到 当我启动时 KeyListener 有时似乎没有转发 KeyEvents 问题症状 启动应用程序时 不处理按键输入 这只是有时发生 有时我必须关闭并启动应用程序 7 8
  • 如何使用 Javascript 动态更改缩放级别?

    我正在尝试找出如何重置 ios 网页中的缩放级别 似乎当用户进行捏放大 缩小时 缩放功能不再起作用 我想要捏合手势 但想以编程方式重置缩放 有人有关于使用 Javascript jQuery 动态改变缩放的想法吗 document read
  • Jenkins 在 Linux 或 Windows 上运行 Maven 构建

    我有一个 Java 应用程序的 Maven 构建 通过键入相同的命令可以在 Linux 或 Windows 上成功运行mvn install 然而 使用Jenkinsfile方法设置此版本时 在 Linux 上该文件需要包含sh mvn i
  • Appcelerator 和 CommonJS 模块(缓存和循环引用)

    事情是这样的 我正在使用 CommonJS 方式使我的移动 iPhone Android 应用程序模块化 这并不奇怪 但有一件事我就是无法理解 CommonJS 允许我创建 STATIC 私有变量 这让我可以轻松创建单例 我认为至少这是因为
  • 将数组传递给函数:数组必须具有“Sized”类型

    我构建了一个像这样的数组的数组 let mut my array false WIDTH HEIGHT where WIDTH and HEIGHT是先前定义的常量 我想将整个数组传递给函数 并更改数组中的值 尽管不是数组的大小 长度 我试
  • 使用 spring-test-mvc jsonpath 测试返回 null

    我正在使用 Spring 的 spring test mvc 库来测试 Web 控制器 我有一个非常简单的控制器 它返回一个 JSON 数组 然后在我的测试中我有 Test public void shouldGetAllUsersAsJs