Рубрики
Без рубрики

Общие утверждения для коллекций Java в AssertJ

Привет! В рамках серии Java collection я решил написать этот небольшой пост, чтобы перечислить некоторые из них… С тегом java, учебник, веб-разработчик, тестирование.

Привет! В рамках серии Java collection я решил написать этот небольшой пост, чтобы перечислить некоторые из наиболее распространенных методов утверждения из AssertJ, которые можно использовать для тестирования коллекций Java.

Общие утверждения коллекции

В этом разделе представлены наиболее распространенные утверждения , используемые с коллекциями Java. Примеры иллюстрируются с использованием списков на основе массивов |/, которые являются наиболее часто используемыми структурами данных Java.

Коллекция содержит элемент

Основная ситуация заключается в том, чтобы проверить, содержит или не содержит коллекция определенный элемент. AssertJ проверяет это с помощью contains() / doesNotContain() элемент, который имеет перегруженные версии:

  • содержит(E e, индекс int) что элемент представлен в определенной позиции
  • содержит(E… элементы) переменные, например, один или несколько элементов, и проверяет их наличие в любой заказ

Взгляните на приведенный ниже фрагмент кода:

@Test
public void containsElementTest(){
    List numbers = Lists.newArrayList(1, 52, 12, 39, 45, 98, 100, 565, 6, 13);
    assertThat(numbers).contains(12);
    assertThat(numbers).doesNotContain(50);
}

Коллекция содержит элементы в любом порядке

Для того, чтобы проверить, что коллекция содержит группу элементов, можно использовать два сценария:

  • Используйте содержит(например, элементы)/| метод и поставляйте элементы в качестве переменных Использовать
  • содержит(повторяемый i) метод, который принимает другую коллекцию и проверяет, что все элементы содержатся внутри исходной в любой заказ

Вот пример использования содержит все() :

@Test
public void containsAllElementsNoMatterOrderTest(){
    List numbers = Lists.newArrayList(1, 52, 12, 39, 45, 98, 100, 565, 6, 13);
    List values = Lists.newArrayList(52, 39, 12, 1, 100);
    assertThat(numbers).containsAll(values);
}

Коллекция содержит элементы в определенном порядке

Другой случай – проверить, что коллекция содержит не только все указанные элементы, но и сохраняет определенный порядок . Для этого можно использовать содержит Ровно элементы метода() . Он принимает iterable и проверяет, что фактическая коллекция содержит все элементы данного iterable и ничего больше в том же порядке .

Взгляните на следующий пример:

@Test
public void containsAllElementsInOrderTest(){
    List numbers = Lists.newArrayList(1, 52, 12, 39, 45, 98, 100, 565, 6, 13);
    List values = Lists.newArrayList(numbers);
    assertThat(numbers).containsExactlyElementsOf(values);
}

Коллекция не содержит дубликатов

Не все Коллекции Java допускают дубликаты: наборы, например, проверяют наличие вставленных элементов и не допускают дубликатов. Другие коллекции, такие как списки, не предлагают такой функциональности. В этом случае, когда вам нужно подтвердить, что в коллекции нет повторяющихся элементов, рекомендуется использовать метод doesNotHaveDuplicates() :

@Test
public void noDuplicatesTest(){
    List numbers = Lists.newArrayList(1, 52, 12, 39, 45, 98, 100, 565, 6, 13);
    assertThat(numbers).doesNotHaveDuplicates();
}

Коллекция содержит элемент только один раз

Расширенный вариант последней ситуации состоит в том, чтобы проверить, что элемент представлен только один раз . Технически, метод contains() допускает дублирование объектов, поэтому, чтобы проверить, что элемент не повторяется, используйте contains Только один раз() утверждение.

Обратите внимание на приведенный ниже фрагмент кода:

@Test
public void containsOnlyOnceTest(){
    List numbers = Lists.newArrayList(1, 1, 52, 12, 12, 45, 45);
    assertThat(numbers).containsOnlyOnce(52);
}

Исходный код

Вы можете найти полный исходный код для этого поста в этом репозитории github . Если у вас есть вопросы относительно этого поста, не стесняйтесь обращаться ко мне. Хорошего дня!

Оригинал: “https://dev.to/iuriimednikov/common-assertions-for-java-collections-in-assertj-4h3g”