Middle+
Melyik mintát tartod a legfontosabbnak a Page Object után?
sobes.tech MI
Válasz az MI-től
Gyárfüggvény.
Lehetővé teszi objektumok létrehozását anélkül, hogy a klienskódba konkrét osztályt írna. Ez fontos a rugalmasság és a bővíthetőség szempontjából az automatizált tesztekben, például különböző böngészőkkel vagy platformokkal való munkánál.
Példa az automatizálási kontextusban:
Tegyük fel, hogy van egy WebDriverFactory interfész és annak implementációi különböző böngészőkhöz (ChromeWebDriverFactory, FirefoxWebDriverFactory). A Gyárfüggvény lehetővé teszi a szükséges driver példányának megszerzését anélkül, hogy feltételes szerkezeteket (if/else) kellene alkalmazni a tesztkódban.
// Gyár interfész
interface WebDriverFactory {
WebDriver createDriver();
}
// Chrome-hoz
class ChromeWebDriverFactory implements WebDriverFactory {
@Override
public WebDriver createDriver() {
WebDriverManager.chromedriver().setup();
return new ChromeDriver();
}
}
// Firefox-hoz
class FirefoxWebDriverFactory implements WebDriverFactory {
@Override
public WebDriver createDriver() {
WebDriverManager.firefoxdriver().setup();
return new FirefoxDriver();
}
}
// A gyár használata a tesztben
public class BaseTest {
protected WebDriver driver;
@BeforeMethod
public void setupTest() {
WebDriverFactory factory = getWebDriverFactory("chrome"); // A szükséges gyár beszerzése (a megvalósítás változhat)
driver = factory.createDriver(); // Driver létrehozása a gyár segítségével
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("Nem támogatott böngésző: " + browser);
}
@AfterMethod
public void tearDownTest() {
if (driver != null) {
driver.quit();
}
}
}
Előnyök:
- Alacsony kötöttség: A klienskód csak a gyár interfészére támaszkodik, nem a konkrét implementációkra.
- Bővíthetőség: Könnyű támogatást hozzáadni egy új böngészőhöz, új gyár létrehozásával és a
getWebDriverFactorymódosításával. - Izoláció: A objektum létrehozási logika egy helyen (a gyárban) összpontosul, ez megkönnyíti a karbantartást.