当前位置: 首页 > 知识库问答 >
问题:

断言错误:JUnit测试中的JSON路径没有值

赫连秦迟
2023-03-14

我以前写过一个测试,它成功了,但现在我得到了一个断言错误:JSON路径没有值。

@Test
public void testCreate() throws Exception {
    Wine wine = new Wine();
    wine.setName("Bordeaux");
    wine.setCost(BigDecimal.valueOf(10.55));

    new Expectations() {
        {
            wineService.create((WineDTO) any);
            result = wine;
        }
    };

    MockMultipartFile jsonFile = new MockMultipartFile("form", "", "application/json", "{\"name\":\"Bordeaux\", \"cost\": \"10.55\"}".getBytes());
    this.webClient.perform(MockMvcRequestBuilders.fileUpload("/wine").file(jsonFile))
            .andExpect(MockMvcResultMatchers.status().is(200))
            .andExpect(MockMvcResultMatchers.jsonPath("$.name").value("Bordeaux"))
            .andExpect(MockMvcResultMatchers.jsonPath("$.cost").value(10.55));
}
java.lang.AssertionError: No value for JSON path: $.name, exception: No results path for $['name']

共有1个答案

宋宏儒
2023-03-14

您断言响应包含一个字段name,其值为bordeaux

您可以使用this.webclient.perform(...).anddo(print())打印响应。

 类似资料:
  • 我对TDD和JUnit有些陌生,我知道我可以为我在代码中实现的方法编写测试用例。 显然,我的代码中有一些方法需要测试几个角落案例来验证方法实现是否正常。由于通常良好的做法是在代码中保持每个方法一个测试方法,因此我必须为这种方法添加多个断言,如本答案所述。https://stackoverflow.com/a/762582/5715934 但是,当我执行测试用例时,我没有获得测试方法中每个断言的测试

  • 如何为下面的JSON编写mockMVC测试,该JSON具有String和Array的组合。 我的代码: 我有个例外 JSON路径“$.accounts.id”处无值,异常: 应在路径$中找到属性为['accounts']的对象,但找到'net'。米尼德夫。json。杰索纳雷'。根据JsonProvider:'com,这不是json对象。乱穿马路。jsonpath。spi。json。JsonSmar

  • 问题内容: 我有这个小代码,实际上是一个登录脚本,它检查寄存器是否打开,并在登录按钮后显示: 我的问题是这一行: include(“ ../ inc / db.php”); 警告:include(E:/wamp/www//inc/db.php):无法打开流:第3行的E:\ wamp \ www \ proiect1-test \ scripts \ login.php中没有此类文件或目录:incl

  • 问题内容: 我已经尝试了过去两天没有运气的问题。我只是试图使用spring框架和hibernate创建一个基于注释的JUnit测试。 我的IDE是netbeans 6.5,我正在使用hibernate3,spring2.5.5和JUnit 4.4。 这是我得到的错误: 问题答案: 将始终表明,一类是在你的编译器的类路径的版本是从上运行时类路径类的版本不同(有方法在编译时失踪,编译就失败了。) 在这

  • 当我尝试运行一个JUnit类时,我得到以下错误: 我怀疑这是POM.xml中的配置问题,但我不确定。顺便说一下,这里是依赖项: http://maven.apache.org/maven-v4_0_0.xsd"

  • 在我的测试用例中,我得到一个整数值: 然后,我想检查是否等于3或等于5,这两种情况都可以。所以,我做到了: 我运行了我的测试,日志显示是5,但是我上面的断言代码由于断言失败错误而失败。似乎我不能使用