Middle+
Page Object'ten sonra en önemli desen hangisidir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Fabrika Yöntemi.
Müşteri kodunda belirli bir sınıfı belirtmeden nesneler oluşturmanıza olanak tanır. Bu, otomatik testlerin esnekliği ve genişletilebilirliği için önemlidir, örneğin farklı tarayıcılar veya platformlar ile çalışırken.
Otomasyon bağlamında kullanım örneği:
Diyelim ki WebDriverFactory adlı bir arayüzümüz ve farklı tarayıcılar için uygulamaları (ChromeWebDriverFactory, FirefoxWebDriverFactory) var. Fabrika Yöntemi, test kodunda koşullu ifadeler (if/else) kullanmadan gerekli sürücünün örneğini almayı sağlar.
// Fabrika arayüzü
interface WebDriverFactory {
WebDriver createDriver();
}
// Chrome için uygulama
class ChromeWebDriverFactory implements WebDriverFactory {
@Override
public WebDriver createDriver() {
WebDriverManager.chromedriver().setup();
return new ChromeDriver();
}
}
// Firefox için uygulama
class FirefoxWebDriverFactory implements WebDriverFactory {
@Override
public WebDriver createDriver() {
WebDriverManager.firefoxdriver().setup();
return new FirefoxDriver();
}
}
// Fabrika kullanımı testte
public class BaseTest {
protected WebDriver driver;
@BeforeMethod
public void setupTest() {
WebDriverFactory factory = getWebDriverFactory("chrome"); // Gerekli fabrikayı al (uygulama farklı olabilir)
driver = factory.createDriver(); // Fabrika aracılığıyla sürücü oluştur
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("Desteklenmeyen tarayıcı: " + browser);
}
@AfterMethod
public void tearDownTest() {
if (driver != null) {
driver.quit();
}
}
}
Faydaları:
- Düşük bağlılık: Müşteri kodu sadece fabrika arayüzüne bağlıdır, somut uygulamalara değil.
- Genişletilebilirlik: Yeni bir tarayıcı desteği eklemek kolaydır; yeni bir fabrika oluşturup
getWebDriverFactorymetodunu değiştirmek yeterlidir. - İzolasyon: Nesne oluşturma mantığı tek bir yerde (fabrika) yoğunlaşmıştır, bu da bakımı kolaylaştırır.