2

我正在看一个现在有点脆弱的黄瓜测试套件;许多小步骤,并且对页面本身一无所知。

我想分解出一系列 Selenium PageObjects 中步骤定义所涉及的逻辑。 如此处所见。

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

class MyPage < Selenium::WebPage

end

因为这增加了直接依赖。

所以我必须通过 Webrat 路由所有内容,同时仍然保持 Selenium Page 对象的优点。我看不到这方面的任何文档:如果有人在 Webrat + PageModel 上有任何东西,我很乐意看到它。

4

2 回答 2

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
于 2010-04-06T05:53:55.927 回答
0

我们刚刚发布了一些听起来和你想要的一样的东西。看看 Gizmo - http://rubygems.org/gems/gizmo/ 与 (webrat | capybara)、(cucumber | rspec) 等一起使用。

于 2010-04-19T11:20:43.800 回答