繁体   English   中英

实例变量将数据存储在黄瓜/红宝石/牛奶中?

[英]Instance Variable to store data in 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吗?

关于这是否合适,有几种理论。 这是一篇讨论利弊的文章

这是大纲。

  • 它导致更具可读性的步骤
  • 我们的步骤失去了参照透明度
  • 这值得么?
    • 无论如何我们都依赖状态
    • 我不是步骤重用的忠实拥护者。
  • 小心使用成员变量

为了真正做到这一点,您可能应该开始使用“ Test Data Builder”设计模式。 该模式将允许您创建和存储要在测试中使用的大型数据结构。 请参阅TestFactory gem的文档,以获取对该模式进行编码的一种方法的描述: https : //github.com/rSmart/TestFactory

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM