S — Single Responsibility Principle(Принцип единой ответственности)
Last updated
Was this helpful?
Last updated
Was this helpful?
У класса должна быть только одна причина для изменения. В контексте автоматизации тестирования избегайте добавления всего в один класс, метод или папку. Вместо этого сделайте каждую сущность, метод или класс ответственной за определенную логику.
Несколько примеров того, как вы можете это применить:
Объектная модель страницы:
Создайте отдельный класс для каждой страницы, например HomePage, LoginPage, OrdersPage и т. д. Вместо объединения всех локаторов страниц в один класс «PageObject», распределите их между отдельными классами, ответственными за соответствующие страницы.
Для больших страниц рассмотрите возможность разбить их на более мелкие PageFragments, такие как заголовок, таблица, нижний колонтитул и т. д.
Каждая функциональность должна иметь отдельный тестовый класс:
Это гарантирует, что каждый класс тестирования предназначен для тестирования определенной функции или функциональности.
Например, класс тестирования входа в систему должен сосредоточиться исключительно на тестировании функциональности входа в систему, и ему не следует поручить тестирование несвязанных функций, таких как регистрация пользователя.
Пользовательский класс WebdriverFactory: мы можем настроить каждую реализацию WebDriver и добавить расширения для конкретных веб-драйверов.
Вспомогательные классы:
Вам следует избегать создания вспомогательного класса, который включает в себя все текущие методы. Вместо этого рассмотрите возможность логического разделения этих классов.
Например, наличие разных вспомогательных классов для FileHelpers, DatabaseHelpers, CsvHelpers, JsonHelpers и т. д.
Один метод должен отвечать только за одно действие :
Когда метод вычисляет значение, он должен сосредоточиться исключительно на выполнении вычисления, не считывая это значение из файла, базы данных или другого внешнего источника. Любые дополнительные действия должны обрабатываться в отдельном классе или методе. Не забывайте учитывать истинную цель сущности при создании класса или метода и избегайте перегрузки ее несвязанной логикой.