在 Spring Boot 中使用 Mockito 模拟 JsonNode

阿迪亚

如何在 Spring Boot 中使用 mockito 模拟这两个 loc。

JsonNode jsonNode = objectMapper.readValue(httpResponseObject.getResponseBody(), JsonNode.class);
    String token = jsonNode.get("token").asText();

我已经使用下面的模拟模拟了第一个 loc,但不知道如何模拟第二个 loc。

String jsonString = TestingUtil.getResponse();
    JsonNode jsonNode = objectMapper.readTree(jsonString);


    Mockito.when(objectMapper.readValue(Mockito.anyString(), Mockito.any(Class.class))).thenReturn(jsonNode);

但这里 jsonNode 正在返回空指针异常

阿尔珀德里亚

这是 mocking 的详细说明objectMapper

https://www.baeldung.com/mockito-mock-jackson-read-value

实际上在单元测试方面,objectMapper 和任何要测试的类没有区别。只需添加要模拟的依赖项,为其指定规则(例如 when->then),断言它。

- 编辑 -

添加 JsonNode 作为模拟对象。

JsonNode mockNode = mock(JsonNode.class);
JsonNode innerMockNode = mock(JsonNode.class);
Mockito.when(objectMapper.readValue(Mockito.anyString(), Mockito.any(Class.class))).thenReturn(mockNode);
Mockito.when(mockNode.get("token")).thenReturn(innerMockNode);
Mockito.when(innerMockNode.asText()).thenReturn("myToken");

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章