Sobes.tech
Middle+

Page Object-dən sonra ən vacib nümunə hansıdır?

sobes.tech Süni İntellekt

AI-dan cavab

Fabrika Metodu.

Müştəri kodunda konkret sinfi göstərmədən obyektlər yaratmağa imkan verir. Bu, avtomatlaşdırılmış testlərin çevikliyi və genişləndirilməsi üçün vacibdir, məsələn, müxtəlif brauzerlər və ya platformalar ilə işləyərkən.

Avtomatlaşdırma kontekstində istifadə nümunəsi:

Tutaq ki, WebDriverFactory interfeysi və onun müxtəlif brauzerlər üçün tətbiqləri (ChromeWebDriverFactory, FirefoxWebDriverFactory) var. Fabrika üsulu, test kodunda şərti ifadələr (if/else) istifadə etmədən lazım olan sürücünün nümunəsini almağa imkan verir.

// Fabrika interfeysi
interface WebDriverFactory {
    WebDriver createDriver();
}

// Chrome üçün tətbiq
class ChromeWebDriverFactory implements WebDriverFactory {
    @Override
    public WebDriver createDriver() {
        WebDriverManager.chromedriver().setup();
        return new ChromeDriver();
    }
}

// Firefox üçün tətbiq
class FirefoxWebDriverFactory implements WebDriverFactory {
    @Override
    public WebDriver createDriver() {
        WebDriverManager.firefoxdriver().setup();
        return new FirefoxDriver();
    }
}

// Fabrikadan istifadə testdə
public class BaseTest {
    protected WebDriver driver;

    @BeforeMethod
    public void setupTest() {
        WebDriverFactory factory = getWebDriverFactory("chrome"); // Lazımi fabrikanı əldə et (tətbiq fərqli ola bilər)
        driver = factory.createDriver(); // Fabrika vasitəsilə sürücünü yarat
        driver.manage().window().maximize();
    }

    private WebDriverFactory getWebDriverFactory(String browser) {
        if ("chrome".equalsIgnoreCase(browser)) {
            return new ChromeWebDriverFactory();
        } else if ("firefox".equalsIgnoreCase(browser)) {
            return new FirefoxWebDriverFactory();
        }
        throw new IllegalArgumentException("Dəstəklənməyən brauzer: " + browser);
    }

    @AfterMethod
    public void tearDownTest() {
        if (driver != null) {
            driver.quit();
        }
    }
}

Üstünlüklər:

  • Aşağı bağlılıq: Müştəri kodu yalnız fabrik interfeysinə bağlıdır, konkret tətbiqlərə yox.
  • Genişləndirmə: Yeni brauzer dəstəyi əlavə etmək asandır; yeni fabrika yaradıb getWebDriverFactory metodunu dəyişmək kifayətdir.
  • İzolasiya: Obrazların yaradılması loqikası tək bir yerdə (fabrika) cəmlənmişdir, bu da baxımı asanlaşdırır.