Ho costruito vari framework di automazione test utilizzando il modello di oggetto pagina con Java (https://code.google.com/p/selenium/wiki/PageObjects).Ruby è compatibile con il rigoroso Pattern oggetti pagina?
Due dei grandi vantaggi che ho trovato sono:
1) Si può vedere quali sono disponibili metodi quando si ha un esempio di una pagina (ad esempio, digitando homepage.
mi mostrerà tutte le azioni/metodi che è possibile chiamare dalla homepage)
2) Poiché i metodi di navigazione (ad es. goToHomepage()
) restituiscono un'istanza della pagina successiva (ad esempio la home page), è possibile spostarsi tra i test semplicemente scrivendo il codice e verificando la posizione.
ad es.
Questi vantaggi funzionano perfettamente con Java poiché il tipo di oggetto (o pagina in questo caso) è noto all'IDE.
Tuttavia, con Ruby, il tipo di oggetto non è fisso in nessun punto ed è spesso ambiguo rispetto all'IDE. Pertanto, non vedo come si possano realizzare questi benefici su una suite di automazione creata utilizzando Ruby (ad esempio utilizzando Cucumber).
Qualcuno può mostrarmi come useresti Ruby con il Page Object Pattern per ottenere questi benefici?
Questo è l'approccio che uso in rubino. Penso che sia il modo più chiaro per lavorare. Tuttavia, definisco '@movie_page || = MoviePage.new', quindi posso riutilizzare l'istanza dell'oggetto di pagina in altri passaggi senza creare più oggetti di quanti ne abbia bisogno. Inoltre, questo ti consente di memorizzare le variabili tra i passaggi nell'istanza di quella pagina. In generale, lo evito, poiché da un POV di manutenzione non è sempre chiaro dove è stato impostato, ma in alcuni casi lo rende molto più facile da usare rispetto all'utilizzo di molte @ variabili nelle fasi di cetriolo. – alannichols