Middle+
Kuru modeli uzskati par svarīgāko pēc Page Object?
sobes.tech AI
Atbilde no AI
Ražo metodes.
Tas ļauj izveidot objektus bez konkrētas klases norādīšanas klienta kodā. Tas ir svarīgi elastībai un paplašināmībai automatizētajos testos, piemēram, strādājot ar dažādām pārlūkprogrammām vai platformām.
Piemērs izmantošanai automatizācijas kontekstā:
Pieņemsim, mums ir WebDriverFactory interfeiss un tā realizācijas dažādām pārlūkprogrammām (ChromeWebDriverFactory, FirefoxWebDriverFactory). Ražošanas metode ļauj iegūt nepieciešamo vadītāja eksemplāru, neizmantojot nosacījumu konstrukcijas (if/else) testu kodā.
// Fabrikas interfeiss
interface WebDriverFactory {
WebDriver createDriver();
}
// Realizācija Chrome
class ChromeWebDriverFactory implements WebDriverFactory {
@Override
public WebDriver createDriver() {
WebDriverManager.chromedriver().setup();
return new ChromeDriver();
}
}
// Realizācija Firefox
class FirefoxWebDriverFactory implements WebDriverFactory {
@Override
public WebDriver createDriver() {
WebDriverManager.firefoxdriver().setup();
return new FirefoxDriver();
}
}
// Piemērošana testā
public class BaseTest {
protected WebDriver driver;
@BeforeMethod
public void setupTest() {
WebDriverFactory factory = getWebDriverFactory("chrome"); // Iegūt nepieciešamo fabriku
driver = factory.createDriver(); // Izveidot vadītāju caur 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("Nepārvaldīts pārlūks: " + browser);
}
@AfterMethod
public void tearDownTest() {
if (driver != null) {
driver.quit();
}
}
}
Priekšrocības:
- Zema saistība: Klienta kods ir atkarīgs tikai no fabrikas interfeisa, ne no konkrētām realizācijām.
- Paplašināmība: Vieglāk pievienot jaunu pārlūkprogrammas atbalstu, izveidojot jaunu fabriku un mainot
getWebDriverFactorymetodi. - Izolācija: Objekta izveides loģika ir koncentrēta vienā vietā (fabrikā), kas atvieglo uzturēšanu.