在研究用于测试移动应用程序的葫芦黄瓜的过程中,出现了如何使用对象的问题。对于测试采用iOS应用程序,这里是Activites之一,每个问题有4个问题和3个答案。要传递给下一个Activiti,您需要回答这些问题,答案是对问题的选项的选中标记。图片看起来像这样:
|1|0|0| or |1|0|0|
|0|1|0| or |1|0|0|
|0|0|1| or |1|0|0|
|1|0|0| or |0|0|1|
1 - 所选选项(复选框);
0 - 未选择字段。
按钮没有绑定 - 既不是ID也不是文本。我们必须通过坐标找到它。这里有一个问题:如何设置一个给定坐标的对象(按钮),然后在步骤的主体中传递一个方法(例如,object.touch(x, y)
)?有兴趣检查所有的组合,其中有81个(在步骤中非常多) - 对象会更容易(你可以写一个破坏的计数器)。以下是我的尝试,但它们不起作用:
class Tapper
def tap(x, y)
perform_action('click_on_screen', x, y)
#or touch(nil, {:offset => {:x => x.to_i, :y => y.to_i}})
end
end
Then /^I touch on screen $/ do |x, y|
@answer_1_1 = Tapper.new
@answer_1_1.tap(802, 153)
end
结果是:
未定义的步骤
或:
对象
的未定义方法'perform_action'