2013-12-17 51 views
1

我正在寫一些自動化測試,使用ruby/watir /黃瓜作爲購物車。我需要保存要在審閱和確認頁面上使用的項目信息。實例變量是否是這樣做的方式?我會想象一些存儲在實例變量中的散列數組,因爲我需要存儲描述,數量排序,價格和變體。例如:實例變量將數據存儲在cucumber/ruby​​/watir中?

@cartItems = [] 

apple = {type: 'washington', quantity: 1, price: 0.74} 
orange = {type: 'naval', quantity: 2, price: 1.25} 
banana = {type: 'cavendish', quantity: 4, price: 0.50, size: 'large'} 
@cartItems = push(apple) 
@cartItems = push(orange) 
@cartItems = push(banana) 

然後,我會閱讀@cartItems檢查審查/確認頁面上的這些事情?能夠從任何頁面添加到@cartItems?

回答

0

大約有這是否是合適與否幾種說法。這裏是an article它討論的優點和缺點。

這是概要。

  • 它會導致更多的可讀性步驟
  • 我們失去了引用透明我們的步驟
  • 是否值得呢?
    • 無論如何我們依賴狀態
    • 我不是一個步驟重用的大粉絲。
  • 小心
+0

感謝您的文章鏈接。我絕對試圖限制我使用的實例變量。也許把它們放在一個輔助模塊中會效果最好。 –

0

使用成員變量要獲得這個你應該開始使用「測試數據生成器」的設計模式真正穩健的。該模式將允許您創建和存儲要在測試中使用的大型數據結構。請參閱TestFactory gem的文檔以獲取對此模式進行編碼的一種方法的描述:https://github.com/rSmart/TestFactory