Middle+
Page Objectтен кийин кайсы паттерн эң маанилүү деп эсептейсиң?
sobes.tech AI
AIден жооп
Фабрика ыкмасы.
Ал автоматтык тесттердин ийкемдүүлүгү жана кеңейтилигин камсыз кылуу үчүн, мисалы, ар кандай браузерлер же платформалар менен иштөөдө, конкреттүү класс көрсөтүүсүз объекттерди түзүүгө мүмкүндүк берет.
Автоматташтыруу контекстинде колдонуу мисалы:
Бизде WebDriverFactory интерфейси жана анын ар башка браузерлер үчүн ишке ашырмалары (ChromeWebDriverFactory, FirefoxWebDriverFactory) бар деп элестетели. Фабрика ыкмасы керектүү драйвердин экземплярин алууга мүмкүндүк берет, тест кодуңузда шарттык конструкциялар (if/else) колдонбостон.
// Фабрика интерфейси
interface WebDriverFactory {
WebDriver createDriver();
}
// Chrome үчүн ишке ашыруу
class ChromeWebDriverFactory implements WebDriverFactory {
@Override
public WebDriver createDriver() {
WebDriverManager.chromedriver().setup();
return new ChromeDriver();
}
}
// Firefox үчүн ишке ашыруу
class FirefoxWebDriverFactory implements WebDriverFactory {
@Override
public WebDriver createDriver() {
WebDriverManager.firefoxdriver().setup();
return new FirefoxDriver();
}
}
// Тестте колдонуу
public class BaseTest {
protected WebDriver driver;
@BeforeMethod
public void setupTest() {
WebDriverFactory factory = getWebDriverFactory("chrome"); // Керектүү фабриканы алуу
driver = factory.createDriver(); // Фабрика аркылуу драйвер түзүү
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("Колдоого алынбаган браузер: " + browser);
}
@AfterMethod
public void tearDownTest() {
if (driver != null) {
driver.quit();
}
}
}
Артыкчылыктары:
- Төмөнкү байланыш: Клиент коду гана фабрика интерфейсине көз каранды, конкреттүү ишке ашырууларга эмес.
- Кеңейтүү мүмкүнчүлүгү: Жаңы браузерди колдоо үчүн жаңы фабриканы түзүп,
getWebDriverFactoryметодун өзгөртүүгө болот. - Изоляция: Объект түзүү логикасы бир жерге топтолгон (фабрикада), бул тейлөөдө жеңилдик берет.