AssertJ проверяет, содержит ли JSONArray карту с записью с заданным ключом и значением

Привет, я хочу проверить с помощью assertThat, содержит ли JSONArray элемент с ключом с определенным значением. Например, у меня есть JSONArray:

[
  {
    "eventType": "event_1",
    "name": "user_1",
    ....
  },
  {
    "eventType": "event_2",
    "name": "user_2",
    ....
  }
]

Я хочу проверить, содержит ли этот массив элемент с ключом: eventType со значением: event_2 Можно ли добиться этого с помощью assertThat без перебора массива и проверки каждого элемента?

Я знаю, что можно проверить, содержит ли карта заданный ключ и значение, и я также знаю, что можно проверить, содержит ли массив заданный элемент. Но я не нашел решения, как совместить обе вещи. У кого-то есть идея, как я могу объединить эти две вещи?

спасибо за помощь


person Dangari    schedule 24.03.2020    source источник


Ответы (1)


Лучше всего это решает https://github.com/lukas-krecan/JsonUnit, который дать вам гораздо лучшие утверждения JSON, чем общий AssertJ.

Надеюсь, поможет!

person Joel Costigliola    schedule 25.03.2020
comment
да мне это помогло. Спасибо. Решение для моего случая было assertThatJson(fullDataMessage).when(IGNORING_EXTRA_FIELDS).isArray().containsAnyOf("{eventType:\"event_2\"}") - person Dangari; 25.03.2020
comment
Рад, что это помогло! - person Joel Costigliola; 25.03.2020