Middle+
Aký vzor považujete za najdôležitejší po Page Object?
sobes.tech AI
Odpoveď od AI
Faktori metoda.
Umožňuje vytvárať objekty bez určenia konkrétnej triedy v kóde klienta. To je dôležité pre flexibilitu a rozšíriteľnosť automatických testov, napríklad pri práci s rôznymi prehliadačmi alebo platformami.
Príklad použitia v kontexte automatizácie:
Predstavme si, že máme rozhranie WebDriverFactory a jeho implementácie pre rôzne prehliadače (ChromeWebDriverFactory, FirefoxWebDriverFactory). Faktori metoda umožňuje získať inštanciu potrebného ovládača bez použitia podmienok (if/else) v testovacom kóde.
// Rozhranie fabriky
interface WebDriverFactory {
WebDriver createDriver();
}
// Implementácia pre Chrome
class ChromeWebDriverFactory implements WebDriverFactory {
@Override
public WebDriver createDriver() {
WebDriverManager.chromedriver().setup();
return new ChromeDriver();
}
}
// Implementácia pre Firefox
class FirefoxWebDriverFactory implements WebDriverFactory {
@Override
public WebDriver createDriver() {
WebDriverManager.firefoxdriver().setup();
return new FirefoxDriver();
}
}
// Použitie fabriky v teste
public class BaseTest {
protected WebDriver driver;
@BeforeMethod
public void setupTest() {
WebDriverFactory factory = getWebDriverFactory("chrome"); // Získať potrebnú fabriku (implementácia môže byť rôzna)
driver = factory.createDriver(); // Vytvoriť ovládač cez fabriku
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("Nepodporovaný prehliadač: " + browser);
}
@AfterMethod
public void tearDownTest() {
if (driver != null) {
driver.quit();
}
}
}
Výhody:
- Nízka väzba: Klientska kód závisí iba od rozhrania fabriky, nie od konkrétnych implementácií.
- Rozšíriteľnosť: Jednoducho pridať podporu nového prehliadača vytvorením novej fabriky a zmenou metódy
getWebDriverFactory. - Izolácia: Logika vytvárania objektu je sústredená na jednom mieste (fabrike), čo uľahčuje údržbu.