2014-01-26 32 views
0

爲了功能測試的目的,我有6個產品頁面幾乎相同。他們的分歧僅限於我目前沒有做任何事情的描述和圖像。這是我的current_setup: 基頁:product_page.rb在一個類中使用頁面對象創建多個page_url gem + ruby​​

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)。

+0

怎樣的PAGE_URL多個頁面之間有什麼不同?它只是水果名稱的變化(除另一個網址將是「#{域} /水果/香蕉」)還是更復雜的東西? –

+0

是的大部分網址都是類似的「#{domain}/fruit/banana」或者「#{domain}/veg/squash」 –

回答

2

page_url可改爲:

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

頁面對象寶石使用ERB允許您創建一個頁面的URL模板,後來允許則params的替代 - 調用訪問的時候,即。

要訪問的頁面,你就必須在指定的using params的類別和類型:

visit ProductPage, using_params: {category: 'fruit', type: 'apple'} do |page| 
    # Do stuff with the domain/fruit/apple page 
end 
+0

謝謝Justin。我沒有想到這一點。只記得以前的例子,你給類似的。 –

相關問題