使用葫芦黄瓜中的对象

Working with objects in a calabash-cucumber

在研究用于测试移动应用程序的 calabash-cucumber 的过程中,出现了如何使用对象的问题。用于测试的应用程序 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

结果是:

undefined step

或:

undefined method 'perform_action' for Object

Calabash x-platform 允许您实现 类 和对象。

https://github.com/calabash/x-platform-example