Page Object Model və framework arxitekturası
Page Object Model (POM) — hər səhifə/komponent üçün locator-ları və hərəkətləri bir sinifdə toplayan pattern:
- Locator dəyişəndə BİR yerdə düzəliş
- Testlər biznes dilində oxunur:
await loginPage.loginAs(user) - Təkrar kod yox olur
Qaydalar: page object-lər assertion etmir (bu, testin işidir; yalnız vəziyyət qaytarır), hərəkətlər user səviyyəsindədir (fillCheckoutForm(data), clickElement(selector) yox), kiçik komponentlər ayrıca (Header, CartWidget).
Böyük framework strukturu: pages/ (POM-lər), fixtures/, api/ (client-lər), test-data/ (factory-lər), utils/, tests/ (spec-lər — yalnız ssenari məntiqi).
Middle interview-da POM-un TƏNQİDİ də soruşulur: dərin miras iyerarxiyaları (BasePage → ... → 5 səviyyə) anti-pattern-dır; müasir alternativ — kompozisiya və daha yüngül "screenplay" / component-object yanaşmaları. Balans: POM sadə saxlanmalı, hər UI detalı üçün metod yazılmamalıdır.
📚 Mənbələr və sənədlər
- Page Object Modelrəsmiplaywright.dev