S — Single Responsibility Principle(Принцип единой ответственности)

У класса должна быть только одна причина для изменения. В контексте автоматизации тестирования избегайте добавления всего в один класс, метод или папку. Вместо этого сделайте каждую сущность, метод или класс ответственной за определенную логику.

Несколько примеров того, как вы можете это применить:

Объектная модель страницы:

  • Создайте отдельный класс для каждой страницы, например HomePage, LoginPage, OrdersPage и т. д. Вместо объединения всех локаторов страниц в один класс «PageObject», распределите их между отдельными классами, ответственными за соответствующие страницы.

  • Для больших страниц рассмотрите возможность разбить их на более мелкие PageFragments, такие как заголовок, таблица, нижний колонтитул и т. д.

Каждая функциональность должна иметь отдельный тестовый класс:

  • Это гарантирует, что каждый класс тестирования предназначен для тестирования определенной функции или функциональности.

  • Например, класс тестирования входа в систему должен сосредоточиться исключительно на тестировании функциональности входа в систему, и ему не следует поручить тестирование несвязанных функций, таких как регистрация пользователя.

Пользовательский класс WebdriverFactory: мы можем настроить каждую реализацию WebDriver и добавить расширения для конкретных веб-драйверов.

Вспомогательные классы:

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

  • Например, наличие разных вспомогательных классов для FileHelpers, DatabaseHelpers, CsvHelpers, JsonHelpers и т. д.

Один метод должен отвечать только за одно действие :

  • Когда метод вычисляет значение, он должен сосредоточиться исключительно на выполнении вычисления, не считывая это значение из файла, базы данных или другого внешнего источника. Любые дополнительные действия должны обрабатываться в отдельном классе или методе. Не забывайте учитывать истинную цель сущности при создании класса или метода и избегайте перегрузки ее несвязанной логикой.

Last updated

Was this helpful?