首页 > 解决方案 > AssertJ - 有没有更流畅的方法来提取/映射值?

问题描述

我有以下测试代码

ObjectNode jsonObject = ..
assertThat(jsonObject.get("level")).isNotNull();
assertThat(jsonObject.get("level").get("object")).isNotNull();
assertThat(jsonObject.get("level").get("object").textValue()).isEqualTo("my value");

我想以更流畅的方式写这个,例如

assertThat(jsonObject.get("level")).isNotNull()
    .extracting(jsonNode -> jsonNode.get("object"))
    .isNotNull()
    .extracting(JsonNode::asText)
    .isEqualTo("my value");

似乎不是为此extracting()而设计的。还有其他更流畅的方法来编写初始测试代码吗?

标签: javaassertj

解决方案


我会认真尝试https://github.com/lukas-krecan/JsonUnit,它被设计为对 json 友好。


推荐阅读