PageObjects
"Page objects are a classic example of encapsulation - they hide the details of the UI structure and widgetry from other components (the tests)." (c) Martin Fowler, PageObject.
Если кратко, весь шаблон PageObject сводится к применению инкапсуляции ради сокрытия технических деталей шагов в тестах. Ниже представлены всего лишь несколько примеров простого теста с использованием инкапсуляции и без.
No Encapsulation
public class GoogleTest {
@BeforeClass
public static void setup() {
Configuration.baseUrl = "http://google.com/ncr"
}
@Test
public void userCanSearch() {
open("/");
$(By.name("q")).val("selenide").pressEnter();
$$(".srg .g").shouldHave(size(10));
$$(".srg .g").get(1).shouldHave(text("Selenide: concise UI tests in Java"));
}
}Mid-level encapsulation
где:
Higher level encapsulation
где:
More examples
Больше примеров и вариаций реализации шаблона PageObject можно найти в следующих докладах:
Last updated
Was this helpful?