現在、 Selenium 2(Webdriver)とTestNGを使用して新しいテストスイートを作成しています。私たちのテストではページオブジェクトパターンを使用しており、これまでの状況に非常に満足しています。ただし、テストで設計上の問題が発生し、そのための適切な解決策を見つけることができないようです。例を挙げましょう。LoginTestCaseは次のとおりです。
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
、子テストケースからアクセスされます。ただし、これは非常に見苦しく、その変数の誤用につながる可能性があります。
この設計の問題に対処するこのパターンまたはいくつかのパターンに対するより良い解決策はありますか?