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

我必须如何调整json路径以便测试成功?

杜绍元
2023-03-14
@DisplayName("test getCarportById(), Status OK")
@Test
void testGetCarportLocationById() throws Exception {

    // given
    final String externalId = "123L";

    final CarportLocation carportLocation = CarportLocationMockHelper.createCarportLocationByIdDTO(externalId);

    given(carportService.getCarportLocationToId(externalId.toString())).willReturn(carportLocation);

    // when

    final MvcResult mvcResult = this.mockMvc.perform(getRequestBuilderMockCarportLocationsById(externalId.toString()))
                                            .andExpect(status().isOk())
                                            .andDo(print())
                                            .andExpect(content().contentType("application/json"))
                                            .andExpect(resultMatcherOK)
                                            .andExpect(MockMvcResultMatchers.jsonPath("$.externalId")
                                                                            .value(CarportLocation.getExternalId()))
                                            .andReturn();

    // then

    assertEquals("application/json", mvcResult.getResponse()
                                              .getContentType());
}
public static CarportLocation createCarportLocationByIdDTO(String externalId) {

    finalCarportLocation carportLocation = new CarportLocation();
    carportLocation.setId(123456L);
    carportLocation.setExternalId(externalId);
    carportLocation.setCarportName("Carport1");
    carportLocation.setLocX(12.4534);
    carportLocation.setLocY(19.5678);
    carportLocation.setLocZ(25.0);

    return carportLocation;
}

这是我通过。anddo(print())打印出来的表达式:

MockHttpServletRequest:
      HTTP Method = GET
      Request URI = /carport/carports/filter
       Parameters = {carportNameAndExternalId=[123L]}
          Headers = []
             Body = <no character encoding set>
    Session Attrs = {}

Handler:
             Type = controller.CarportController
           Method = controller.CarportController#_getCarportLocationsByIdAndName(String)

Async:
    Async started = false
     Async result = null

Resolved Exception:
             Type = null

ModelAndView:
        View name = null
             View = null
            Model = null

FlashMap:
       Attributes = null

MockHttpServletResponse:
           Status = 200
    Error message = null
          Headers = [Content-Type:"application/json"]
     Content type = application/json
             Body = []
    Forwarded URL = null
   Redirected URL = null
          Cookies = []

只是不幸的是,我的JUnit测试失败了,我不知道为什么。

AssertionError:JSON路径“$.ExternalID”处没有值

只是不幸的是,一个“$[1].ExternalID”对我没有帮助。因此,anddo(print())方法也有,但不能真正处理输出。有人知道我必须如何调整json路径以便测试成功吗?

共有1个答案

万修然
2023-03-14
assertEquals("application/json", mvcResult.getResponse()
                                          .getContentType());
MockHttpServletResponse:
           Status = 200
    Error message = null
          Headers = [Content-Type:"application/json"]
     Content type = application/json
             Body = []
    Forwarded URL = null
   Redirected URL = null
          Cookies = []
.andExpect(jsonPath("$.externalId", is(CarportLocation.getExternalId())))
 类似资料:
  • 在各个 Adobe 应用程序中,编辑路径段的方式很相似。您可以随时编辑路径段,但是编辑现有路径段与绘制路径段之间存在些许差异。请在编辑路径段时记住以下提示: 如果一个锚点连接两条线段,则移动该锚点将总是更改两条线段。 当使用钢笔工具进行绘制时,按住 Ctrl 键 (Windows) 或 Command 键 (Mac OS) 可暂时激活上次使用的选择工具 (Illustrator) 或直接选择工具(

  • 问题内容: 运行gui时,我必须调整窗口大小以显示所有内容。有人知道问题出在哪里吗? 问题答案: 在添加所有组件之后并在调用setVisible(true)之前,在JFrame上调用pack()。

  • 问题内容: 我有一个简单的Swing GUI。(不仅如此,我编写的所有摆动GUI都如此)。运行它时,它没有显示任何内容,只有空白屏幕,直到我调整了主框架的大小,所以每个组件都重新绘制了一次,然后我才能显示它们。 这是我的简单代码: 所以,我的问题是:当我开始上课时,框架将如何显示我添加的所有组件,而不是在调整框架大小之前。 谢谢 :) 问题答案: 不要添加组件后是可见的() 调用框架而不是调用并不

  • 问题内容: [添加]所以我的下一个问题是,当我尝试添加新的依赖项时(npm install –save socket.io)。JSON文件也有效。我收到此错误:无法解析json 因此,我一直在尝试找出为什么此错误一直在返回。所有文件(HTML,JSON,JS)都在我桌面上的同一文件夹内。我正在使用node.js和socket.io 这是我的JS文件: 这是返回的内容: 问题答案: 错误非常明显,您

  • 在我的应用程序中,我需要调用一个外部endpoint,如果它太慢,就会激活回退。 以下代码是我的应用程序外观的示例: 及其回退实施: 此外,断路器的配置超时: 我如何实施集成测试来检查我的断路器是否工作,例如,我的endpoint(在这种情况下被模拟)是否很慢,或者它是否返回4xx或5xx等错误? 我正在使用SpringBoot1.5.3和SpringCloud(佯装Hystrix)

  • 问题内容: 我有一个Spring MVC应用程序(Spring Boot 1.2.5版),该应用程序使用JPA与流行的Sql数据库进行交互。 因此,我有几个映射数据库中所有表的实体。显然,这些类仅具有用于实体之间关系的获取器/设置器和注释。 例如: 我的问题是:我应该对这些课程进行单元测试吗?我应该测试什么?怎么样 问题答案: 我建议您测试所有编写的内容(或选择编写)…因此在这种情况下,我看到以下