Ich habe verschiedene Testautomatisierungs-Frameworks mit dem Page Object Pattern mit Java (https://code.google.com/p/selenium/wiki/PageObjects) erstellt.Ist Ruby mit einem strengen Page Object Pattern kompatibel?
Zwei der großen Vorteile, die ich gefunden haben, sind:
1) Sie können sehen, welche Methoden verfügbar sind, wenn Sie eine Instanz einer Seite (zB homepage.
Eingabe zeigt mir alle Aktionen/Methoden, die Sie anrufen können von der Homepage)
2) Da Navigationsmethoden (zB goToHomepage()
) eine Instanz der Folgeseite (zB Homepage) zurückliefern, können Sie durch Ihre Tests navigieren, indem Sie den Code schreiben und sehen, wo er Sie hinführt.
z.B.
Diese Vorteile funktionieren perfekt mit Java, da der Typ des Objekts (oder der Seite in diesem Fall) von der IDE bekannt ist.
Allerdings ist der Objekttyp mit Ruby an keiner Stelle fest und oft nicht eindeutig für die IDE. Daher kann ich nicht sehen, wie Sie diese Vorteile in einer mit Ruby erstellten Automatisierungssuite realisieren können (z. B. mit Cucumber).
Kann mir jemand zeigen, wie Sie Ruby mit dem Page Object Pattern verwenden würden, um diese Vorteile zu erhalten?
Dies ist der Ansatz, den ich in Ruby verwende. Ich denke, es ist der klarste Weg zur Arbeit. Ich definiere jedoch '@movie_page || = MoviePage.new', damit ich die Seitenobjektinstanz in anderen Schritten wiederverwenden kann, ohne mehr Objekte zu erstellen, als ich brauche. Außerdem können Sie Variablen zwischen den Schritten in der Instanz dieser Seite speichern. Im Allgemeinen vermeide ich dies, da von einem Wartungs-POV nicht immer klar ist, wo es eingestellt wurde, aber in einigen Fällen ist es viel einfacher zu verwenden als viele @ Variablen in den Gurkenschritten zu verwenden. – alannichols