我已經使用Java的頁面對象模式(https://code.google.com/p/selenium/wiki/PageObjects)構建了各種測試自動化框架。Ruby是否與嚴格的頁面對象模式兼容?
的我已經找到了很大的好處有兩個是:
1)你可以看到什麼方法都可以,當你有一個網頁的一個實例(如打字homepage.
會告訴我所有的動作/方法,你可以調用從主頁)
2)因爲導航方法(例如goToHomepage()
)返回後續頁面的實例(例如主頁),您可以簡單地通過編寫代碼並查看您的位置來瀏覽測試。
例如
WelcomePage welcomePage = loginPage.loginWithValidUser(validUser);
PaymentsPage paymentsPage = welcomePage.goToPaymentsPage();
這些優勢與Java因爲對象(或頁面在這種情況下)的類型完美地工作是由IDE聞名。
但是,在Ruby中,對象類型在任何時候都不固定,並且通常對IDE來說不明確。因此,我看不出如何在使用Ruby構建的自動化套件(例如使用Cucumber)上實現這些優勢。
任何人都可以告訴我如何使用Ruby與頁面對象模式來獲得這些好處?
這是我在紅寶石中使用的方法。我認爲這是最明智的工作方式。但是我確實定義了'@movie_page || = MoviePage.new',這樣我就可以在其他步驟中重用頁面對象實例,而不需要創建比我需要的更多的對象。此外,這使您可以在該頁面的實例中的步驟之間存儲變量。總的來說,我避免了這種情況,因爲從維護POV來看,它並不總是清楚它的設置位置,但在某些情況下,它使用起來比在黃瓜步驟中使用許多@variables更容易。 – alannichols