Порядок утверждения в списке

Я хотел бы проверить, находятся ли элементы в списке в определенном порядке. В частности, я хотел бы проверить на элемент элементов. Так что-то вроде:

assertThat(listOfObjects).hasProperty(name).inOrder("one", "two", "three");

Возможно ли сделать что-то подобное? Прямо сейчас я вручную перебираю элементы и имею утверждение для каждого из них.

1 ответ

После быстрого просмотра исходного кода версии 1 ( ссылка здесь) я нашел этот метод, который утверждает, что делает то, что вы хотите:

/**
 * Verifies that the actual {@code List} contains the given objects, in the same order. This method works just like
 * {@code isEqualTo(List)}, with the difference that internally the given array is converted to a {@code List}.
 *
 * @param objects the objects to look for.
 * @return this assertion object.
 * @throws AssertionError       if the actual {@code List} is {@code null}.
 * @throws NullPointerException if the given array is {@code null}.
 * @throws AssertionError       if the actual {@code List} does not contain the given objects.
 */
public @Nonnull ListAssert containsExactly(@Nonnull Object... objects) {
  checkNotNull(objects);
  return isNotNull().isEqualTo(newArrayList(objects));
}

Если я правильно понимаю Javadoc, вы бы просто сделали это:

assertThat(listOfObjects).containsExactly(object1, object2, object3);

Обратите внимание, что в версии 2.0-M8 были некоторые проблемы с этим методом. Как подробно здесь! Они были решены в версии 2.0-M9.

Другие вопросы по тегам