0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Теги: java, тестирование, автоматизация, еnum</p>
1
<p>Теги: java, тестирование, автоматизация, еnum</p>
2
<p>Очень часто логика работы приложения предполагает заполнение регистрационной формы. Давайте представим, что у нас есть форма для клиента, где надо указать страну, город и номер телефона.</p>
2
<p>Очень часто логика работы приложения предполагает заполнение регистрационной формы. Давайте представим, что у нас есть форма для клиента, где надо указать страну, город и номер телефона.</p>
3
<p>Для выполнения нашего примера уменьшим количество используемых в форме стран до трех: пусть это будет Австрия (AT), Эстония (EE) и Испания (ES). При этом каждая из стран будет обладать 3-мя свойствами: - наименование страны; - список городов; - код страны для телефонного номера (используя код, мы получим возможность сформировать тестовый телефонный номер).</p>
3
<p>Для выполнения нашего примера уменьшим количество используемых в форме стран до трех: пусть это будет Австрия (AT), Эстония (EE) и Испания (ES). При этом каждая из стран будет обладать 3-мя свойствами: - наименование страны; - список городов; - код страны для телефонного номера (используя код, мы получим возможность сформировать тестовый телефонный номер).</p>
4
<p>Для перечисления стран воспользуемся объектом<strong>Enum</strong>:</p>
4
<p>Для перечисления стран воспользуемся объектом<strong>Enum</strong>:</p>
5
<p>Итак, в первую очередь мы указываем перечень допустимых значений для констант стран, плюс допустимые значения для вышеуказанных свойств стран. Также мы определяем типы свойств (properties), объявляя<strong>cities</strong>,<strong>label</strong>и<strong>phoneNumberPrefix</strong>. Такими типами являются: String, List<String> и int.</p>
5
<p>Итак, в первую очередь мы указываем перечень допустимых значений для констант стран, плюс допустимые значения для вышеуказанных свойств стран. Также мы определяем типы свойств (properties), объявляя<strong>cities</strong>,<strong>label</strong>и<strong>phoneNumberPrefix</strong>. Такими типами являются: String, List<String> и int.</p>
6
<p>Идем дальше. Для формирования значений Enum внутри кода используется<strong>конструктор</strong>. Например, AT имеет свойства, а порядок этих свойств соответствует порядку параметров из конструктора. У свойства label - значение "Австрия", у свойства cities - список городов, которые относятся к Австрии: "Вена", "Зальцбург", "Инсбрук", у свойства phoneNumberPrefix - значение "43".</p>
6
<p>Идем дальше. Для формирования значений Enum внутри кода используется<strong>конструктор</strong>. Например, AT имеет свойства, а порядок этих свойств соответствует порядку параметров из конструктора. У свойства label - значение "Австрия", у свойства cities - список городов, которые относятся к Австрии: "Вена", "Зальцбург", "Инсбрук", у свойства phoneNumberPrefix - значение "43".</p>
7
<p>У нас есть возможность получить свойство, которое соответствует константе Enum, сделав это так:<em>Country.CONSTANT.propertyName</em>.</p>
7
<p>У нас есть возможность получить свойство, которое соответствует константе Enum, сделав это так:<em>Country.CONSTANT.propertyName</em>.</p>
8
<p>Или, к примеру,<em>Country.AT.label</em>даст нам возможность получить свойство "Австрия". То есть свойства Country статичны.</p>
8
<p>Или, к примеру,<em>Country.AT.label</em>даст нам возможность получить свойство "Австрия". То есть свойства Country статичны.</p>
9
<p>Итак, у нас есть регистрационная форма. В ней страна выбирается из дроп-дауна, город - из другого раскрывающегося списка, а телефонный номер вводится в поле. При этом класс Page включает в себя информацию по определенной стране и содержит ряд записей:</p>
9
<p>Итак, у нас есть регистрационная форма. В ней страна выбирается из дроп-дауна, город - из другого раскрывающегося списка, а телефонный номер вводится в поле. При этом класс Page включает в себя информацию по определенной стране и содержит ряд записей:</p>
10
<p>Обратите внимание, что метод countrySelect() возвращает нам функцию Select со ссылкой на дроп-даун стран. Точно так же и метод citySelect() возвращает функцию Select со ссылкой на дроп-даун городов. Что касается ввода номера, то тут используется элемент<strong>WebElement phoneNumberField</strong>.</p>
10
<p>Обратите внимание, что метод countrySelect() возвращает нам функцию Select со ссылкой на дроп-даун стран. Точно так же и метод citySelect() возвращает функцию Select со ссылкой на дроп-даун городов. Что касается ввода номера, то тут используется элемент<strong>WebElement phoneNumberField</strong>.</p>
11
<p><em>По материалам https://blog.testproject.io/2020/08/04/using-java-enums-in-test-automation/.</em></p>
11
<p><em>По материалам https://blog.testproject.io/2020/08/04/using-java-enums-in-test-automation/.</em></p>
12
12