Mam zbudowane różne struktury automatyzacji testów, używając wzorca obiektu strony z językiem Java (https://code.google.com/p/selenium/wiki/PageObjects).Czy Ruby jest zgodne ze ścisłym wzorcem obiektów strony?
Dwa duże korzyści znalazłem to:
1) Można zobaczyć, jakie są dostępne metody kiedy trzeba instancję strony (np wpisując homepage.
pokaże mi wszystkich działań/metod można zadzwonić ze strony głównej)
2) Ponieważ metody nawigacyjne (np. goToHomepage()
) zwracają instancję kolejnej strony (np. stronę domową), można przechodzić testy przez proste napisanie kodu i zobaczenie, gdzie to zajmie.
np.
WelcomePage welcomePage = loginPage.loginWithValidUser(validUser);
PaymentsPage paymentsPage = welcomePage.goToPaymentsPage();
Korzyści te doskonale sprawdzają się w Javie, ponieważ typ obiektu (lub strona w tym przypadku) jest znany w IDE.
Jednak z Ruby typ obiektu nie jest ustalony w żadnym punkcie i często jest niejednoznaczny dla IDE. Dlatego nie widzę, w jaki sposób można wykorzystać te zalety w pakiecie automatyzacji zbudowanym przy użyciu Ruby (na przykład przy użyciu ogórka).
Czy ktoś może mi pokazać, w jaki sposób można użyć Ruby z wzorcem obiektów strony, aby uzyskać te korzyści?
Jest to podejście, którego używam w ruby. Myślę, że to najczystszy sposób działania. Jednak definiuję '@movie_page || = MoviePage.new', dzięki czemu mogę ponownie użyć instancji obiektu strony w innych krokach bez tworzenia więcej obiektów, niż potrzebuję. Umożliwia to również przechowywanie zmiennych między etapami w instancji tej strony. Generalnie unikam tego, ponieważ z POV konserwacji nie zawsze jest jasne, gdzie został ustawiony, ale w niektórych przypadkach czyni go dużo łatwiejszym w użyciu niż używanie wielu @ zmiennych w krokach ogórka. – alannichols