2 votes

Comment utiliser le pattern Page Object avec Cucumber et Webrat / Selenium ?

J'ai sous les yeux une suite de tests cucumber qui est quelque peu fragile en ce moment ; beaucoup de petites étapes, et aucune connaissance de la page elle-même.

J'aimerais factoriser la logique impliquée dans les définitions d'étapes à l'intérieur d'une série de PageObjects Selenium. Comme vu ici.

Cependant, comme j'utilise Webrat et non Selenium, tout doit passer par le modèle Webrat. Je ne peux donc pas faire

class MyPage < Selenium::WebPage

end

car cela ajoute une dépendance directe.

Je dois donc tout faire passer par Webrat tout en conservant la qualité de l'objet Page de Selenium. Il n'y a pas de documentation sur ce sujet à ma connaissance : si quelqu'un a quelque chose sur Webrat + PageModel, j'aimerais bien le voir.

1voto

Will Sargent Points 2147

Il s'avère que la réponse est :

class MyPage < BasePage
  def visit
    @world.visit "/"
  end

end

class BasePage
  def initialize(world)
    @world = world
  end
end

Et ensuite dans une définition d'étape :

Given /I am awesome/ do
  page = MyPage.new(self)
  page.visit
end

0voto

Nous venons de sortir quelque chose qui ressemble exactement à ce que vous cherchiez. Jetez un coup d'oeil à Gizmo - http://rubygems.org/gems/gizmo/ fonctionne avec (webrat | capybara), (cucumber | rspec) etc.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X