Как сравнивать HashMap и Классы в автотестах Java Selenide

YOUTUBE · 30.11.2025 05:19

Ключевые темы и таймкоды

Введение и цель разбора

0:01
  • Разбор тест-кейса от подписчиков.
  • Использование хэш-карты и классов для сравнения переменных.
  • Возможность прислать тест-кейс на почту и скачать проект с GitHub.

Описание задачи

1:00
  • Получение информации о профиле через хэш-карту или класс.
  • Атрибуты: пол, возраст, город, подтвержденный номер телефона, готовность к переезду.
  • Нюансы: пол должен быть буквой "м" или "ж", возраст - числом, город - текстом.

Подготовка к реализации

2:58
  • Преобразование строки в логическое значение.
  • Использование паттерна Page Object.
  • Создание нового пакета и класса для проекта.

Создание тестового класса

3:53
  • Создание базового тестового класса.
  • Наследование от базового класса.
  • Создание пейдж-класса для страницы с резюме.

Открытие страницы и получение элементов

5:27
  • Открытие страницы через конструктор.
  • Поиск элемента "пол" с помощью локатора.
  • Объявление веб-элемента в классе.

Получение пола

8:23
  • Два способа получения буквы "м" или "ж".
  • Использование дополнительных условий и тернарного оператора.
  • Выбор более продвинутого способа для уменьшения кода.

Получение возраста

11:20
  • Поиск элемента с возрастом "25 лет".
  • Преобразование строки в число с помощью регулярного выражения.
  • Объявление элемента в классе и создание метода для получения числа.

Регулярные выражения

14:30
  • Регулярные выражения используются для поиска текстовых значений в тексте.
  • Пример: поиск символов, не являющихся цифрами, и замена их на пустые значения.
  • Преобразование строки в число с помощью метода parseInt.

Поиск города Санкт-Петербург

16:22
  • Получение текстового значения элемента с помощью метода getText.
  • Разделение строки на части с помощью метода split.
  • Создание массива из разбитой строки и проверка готовности к переезду.

Проверка готовности к переезду

20:03
  • Использование метода split для разделения строки на части.
  • Проверка наличия фразы "не готов к переезду" в массиве.
  • Возвращение логического значения на основе найденной фразы.

Проверка подтвержденного номера телефона

23:47
  • Проверка видимости элемента на странице.
  • Создание хэш-карты для хранения пар ключ-значение.
  • Вынесение ключей в отдельное место для предотвращения дублей.

Создание констант и хэш-карты

25:58
  • Объявление констант для ключей: пол, возраст, город, номер телефона, готовность к переезду.
  • Создание метода для возврата карты с заполненными значениями.
  • Добавление данных в хэш-карту с помощью метода put.

Возвращение хэш-карты

30:09
  • Заполнили хэш-карту и вернули её.
  • Использовали фигурные скобки для упрощения кода.
  • Это не влияет на функциональность, но делает код более читаемым.

Создание ожидаемых результатов

31:06
  • Создали хэш-карту для ожидаемых результатов.
  • Использовали статичные переменные для заполнения карты.
  • Пример заполнения карты: гендер, возраст, город, телефон, готовность к переезду.

Получение актуальных результатов

33:17
  • В тестовом методе получили актуальные результаты.
  • Создали хэш-карту для актуальных результатов.
  • Вызвали метод для получения актуальных данных.

Сравнение ожидаемых и актуальных результатов

34:16
  • Использовали метод assert для сравнения ожидаемых и актуальных данных.
  • Проверили, что карта заполняется нужными значениями.
  • Если ожидаемые и актуальные данные не совпадают, тест падает.

Сравнение через классы

36:40
  • Создали класс для хранения данных.
  • Использовали конструктор для заполнения данных.
  • Создали два экземпляра класса для ожидаемых и актуальных данных.

Заполнение экземпляров класса

40:09
  • Заполнили ожидаемый экземпляр класса данными.
  • Заполнили актуальный экземпляр класса данными с страницы.
  • Использовали геттеры для получения данных из экземпляров класса.

Сравнение экземпляров класса

43:11
  • Создали экземпляры класса с разными данными.
  • Использовали дебаггер для проверки различий.
  • Сравнили ожидаемые и актуальные данные, чтобы убедиться в их совпадении.