我是 Ruby 和 Cucumber 自动化的新手,目前我正在尝试自动化一个基本游戏。
该游戏有大约 200 种产品,我正在运行一项测试,逐一检查这些产品是否已启用。
prod1 = check_product '#product1.product'
prod1.click unless prod1.nil?
prod2 = check_product '#product2.product'
prod2.click unless prod2.nil?
prod3 = check_product '#product3.product'
prod3.click unless prod3.nil?
我的问题是我不想列出代表产品的 200 行代码。我觉得我应该只能用一行代码用“x”替换产品编号,并告诉它用 1..200 替换 x。
就像是 :-
x = 1..200
prod[x] = check_product '#product[x].product'
prod[x].click unless prod[x].nil?
我知道这是非常错误的,但我希望它能证明我的意思。
有什么好方法可以完成我的要求吗?
为可能非常基本的问题和糟糕的代码道歉。我现在真的只是在学习绳索:-)
=====
更新下面的解决方案很有效。我的代码现在显示为:-
def product_skips_check
n = 9
products = []
(0..n).each do |i|
products[i] = check_product "#product#{i}.product"
products[i].click unless products[i].nil?
end
end
非常感谢所有回复:-)