Middle+
Page Object dan keyin eng muhim deb o'ylagan shablon nima?
sobes.tech AI
AIdan javob
Fabrik usulü.
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, bizdə WebDriverFactory interfeysi və onun müxtəlif brauzerlər üçün tətbiqləri (ChromeWebDriverFactory, FirefoxWebDriverFactory) var. Fabrik ü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
getWebDriverFactorymetodunu 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.