AssertJ — Есть ли более плавный способ извлечения / сопоставления значений?

#java #assertj

#java #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() было разработано для этого.
Есть ли какой-либо другой более плавный способ записи начального тестового кода?

Ответ №1:

Я бы серьезно попытался https://github.com/lukas-krecan/JsonUnit , он разработан так, чтобы быть дружественным к json.