我們現在寫的用硒2(webdriver的)和TestNG的一個新的測試套件Page對象的模式。我們的測試使用頁面對象模式,我們對目前看起來很滿意。然而,我們在測試中遇到了一個設計問題,我們似乎無法找到一個好的解決方案。 讓我舉個例子。這裏是我們的LoginTestCase:如何設計硒2次測試使用繼承
public class LoginTestCase extends MyTestCase {
@BeforeTest
public void login() {
HomePage homepage = PageFactory.initElements(getDriver(), HomePage.class);
LoginPage loginPage = homepage.login();
DashboardPage dashboardPage = loginPage.loginUser("username", "password");
}
}
我們希望擴大我們的測試,需要用戶從這個測試登錄。 理想的情況下,我們將能夠寫出這樣的事:
public class DashboardTestCase extends LoginTestCase {
@Test
public void testDashboard(DashboardPage dashboardPage) {
...
}
}
此時用戶在DashboardPage
,需要的僅僅是這是在LoginTestCase
創建的頁面的對象。
我知道顯而易見的解決方案是將該對象存儲在一個變量中(在LoginTestCase
中),然後該變量將由子測試用例訪問。但是,這看起來非常醜陋,可能會導致濫用該變量。
有沒有更好的解決方案或解決此設計問題的某種模式?