使用page-object gem + ruby​​在一个类中有多个page_url

时间:2014-01-26 19:18:13

标签: ruby page-object-gem

我有6个产品页面,它们在功能测试方面几乎完全相同。他们之间的区别只在于描述和图像,我目前没有做任何事情。这是我的current_setup: 基页:product_page.rb

class ProductPage
  button(:add_fruit_proceed, :id => add_fruit)
  text_field(:fruit_quantity, :id => fruit_quantity)
end

产品页面看起来与此类似:apple_page.rb

class ApplePage < ProductPage
  page_url "#{domain}/fruit/apple"
end

有没有办法整合所有这些,以便我只有product_page.rb?我需要page_url,因为我在测试中使用了访问(ApplePage)。

1 个答案:

答案 0 :(得分:2)

page_url可以更改为:

page_url "#{domain}/<%=params[:category]%>/<%=params[:type]%>"

页面对象gem使用ERB来创建页面URL模板,允许稍后替换params - 即在调用visit时。

要访问该页面,您必须在using params

中指定类别和类型
visit ProductPage, using_params: {category: 'fruit', type: 'apple'} do |page|
  # Do stuff with the domain/fruit/apple page
end