Знання основ об’єктно-орієнтованого програмування необхідне не тільки програмістам, але й, звичайно, тестувальникам, які взаємодіють з програмним кодом, вивчають його або пишуть. Знання основ програмування дозволяє QA-спеціалістам краще розуміти поведінку програми, давати ефективні рекомендації щодо покращення структури програмного коду, а також більш ефективно створювати код для автотестування.
Поняття інкапсуляції
Інкапсуляція - це набір практик для приховування частин реалізації або внутрішнього стану об’єкта та вибіркового надання доступу до внутрішньої механіки за допомогою певних загальнодоступних методів. Його часто використовують, щоб безпосередньо запобігти доступу користувачів до об’єкта та редагування цих властивостей, з метою веб-безпеки або для запобігання навмисній зміні інформації.
Приклад використання інкапсуляції у програмному коді
Щоб наочно продемонструвати використання інкапсуляції та її властивості, уявімо, що у нас є деякий клас TEST, який представляє собою банківський рахунок з 2 характеристиками: тип рахунку та залишок на рахунку.
Отже, найпростіше відображення такого класу може виглядати так:

TEST клас
Це дуже шаблонно і викликає багато запитань. Найважливіше з них полягає в тому, що всі користувачі цього класу можуть змінювати значення властивостей банківського балансу за власним бажанням, коли вони виконують дії зі зняття коштів з рахунку або поповнення рахунку.
І це не найкраща ідея. Ніхто не може гарантувати, що бізнес-правила дотримуються правильно, тому що такі операції не можуть нав’язати “правильну поведінку системи”.
Набагато краще використовувати основи інкапсуляції. Для цього ми можемо зробити властивості прихованими, обмеживши прямий доступ до них за допомогою класу TEST. Потім ми надаємо доступ до властивості через загальнодоступні методи, додаючи деякі бізнес-правила:

public class TEST
Коли використовується інкапсуляція і накладаються певні бізнес-правила, стає нереально зняти від’ємну суму грошей або покласти на рахунок користувача від’ємне значення коштів. Реальний баланс, як і раніше, доступний для всіх, але доступ до нього обмежений до зчитування параметрів.
Роль інкапсуляції в автоматизації
Найпоширенішим застосуванням основ інкапсуляції у сфері автоматизації тестування є Page Object, який, у свою чергу, широко використовується завдяки своєму зручному інтерфейсу на базі таких інструментів, як Selenium, Playwright та Cypress.
Як ми знаємо, Page Object - це спеціальні класи, які інкапсулюють деталі створення сторінки, локатори, що використовуються для перевірки елементів на веб-сторінці, а також використовуються в тестових перевірках.
Приклад інкапсуляції об’єктів сторінки
Розглянемо невеликий приклад об’єкта LoginPage, який ховає основи реалізації в приватних параметрах, а доступ до них дає через прості тестові маніпуляції, які визначені в публічних методах.

public class LoginPage
“Користувач” такого класу може оперувати елементами, визначеними в класі, виключно через загальнодоступний метод, не маючи прямого доступу до деталей реалізації сторінки - наприклад, структури HTML. Все це призводить до чистого API для класу об’єктів сторінки та ефективного розмежування інтересів.










0 коментарів