Ответ
В автотестах на Java коллекции — это основной инструмент для работы с данными, ожидаемыми результатами и группами объектов. Вот типичные сценарии использования:
-
Хранение и сравнение наборов данных. Часто нужно сравнить список элементов, полученный из UI или API, с ожидаемым списком.
// Ожидаемые категории товаров List<String> expectedCategories = Arrays.asList("Электроника", "Одежда", "Книги"); // Фактические категории, полученные, например, парсингом страницы List<String> actualCategories = productPage.getCategoryNames(); assertThat(actualCategories).containsExactlyElementsOf(expectedCategories); -
Проверка уникальности. Использую
Setдля проверки, что в выпадающем списке или таблице нет дубликатов.Set<String> uniqueStatuses = new HashSet<>(apiResponse.getOrderStatuses()); assertEquals(apiResponse.getOrderStatuses().size(), uniqueStatuses.size()); // Проверка на дубли -
Работа с тестовыми данными (Data Provider). В TestNG
@DataProviderчасто возвращает коллекцию массивов объектов для параметризации.@DataProvider public Object[][] userCredentials() { return new Object[][] { {"user1", "pass1"}, {"user2", "pass2"} }; } -
Группировка объектов для проверок. Например,
Map<String, List<Product>>для группировки товаров по категориям перед сложной проверкой. -
Имитация очереди (Queue) в нагрузочных тестах или тестах, моделирующих последовательную обработку заявок.
Коллекции из java.util.concurrent (например, ConcurrentHashMap) могут понадобиться при написании многопоточных тестов или утилит для тестирования.