Sobes.tech
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 getWebDriverFactory metodi.
  • Izolācija: Objekta izveides loģika ir koncentrēta vienā vietā (fabrikā), kas atvieglo uzturēšanu.