2010-04-05 77 views
2

我正在看一个现在有点脆弱的黄瓜测试套件;许多小步骤,并且不了解页面本身。如何在Cucumber和Webrat/Selenium上使用页面对象模式?

我想分解一系列Selenium PageObjects中的步骤定义所涉及的逻辑。 As seen here.

但是,因为我使用的是Webrat而不是Selenium,所有内容都必须通过Webrat模型。所以我做不到

class MyPage < Selenium::WebPage 

end 

因为那增加了直接的依赖关系。

所以我必须通过Webrat路由一切,同时仍然保持Selenium Page对象的善良。没有关于此的文档,我可以看到:如果某人在Webrat + PageModel上有任何内容,我很乐意看到它。

回答

1

原来答案是:

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

end 

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

,然后在步骤定义:

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

我们刚刚发布的东西,听起来就好像你是什么之后。 看看Gizmo - http://rubygems.org/gems/gizmo/ 适用于(webrat |水豚),(黄瓜| rspec)等。

相关问题