我正在遵循基于视图的类模型来为我的应用设置Calabash测试框架,即每个视图都有一个包含该视图必需方法的类。

但是,当我调用诸如“wait_for()”之类的葫芦函数时,会抛出一个错误:

LoggedInPage:Class的未定义方法“wait_for”(NoMethodError)

我已经在env.rb中添加了这些

 require 'calabash-cucumber/wait_helpers'
 require 'calabash-cucumber/operations'
 World(Calabash::Cucumber::Operations)
 World(Calabash::Cucumber::WaitHelpers)

最佳答案

问题可能是页面对象类没有在运行黄瓜的同一个“世界”中初始化。将文件添加到env会将它们及其方法添加到运行黄瓜的世界。创建对象时,您必须将该世界传递给页面对象,以使他们能够访问这些功能。

让您的页面对象类继承自calabashes页面对象库-http://www.rubydoc.info/gems/calabash-cucumber/Calabash/IBase
当您创建页面对象的新实例时,将自己传递。

class MyPage < Calabash::IBase
...

new_instance_of_page_object = MyPage.new(self)

在这种特定情况下,从IBase继承将使您可以访问正在讨论的功能,但是自我传递将意味着您可以访问在环境文件中添加的任何其他内容。

关于ios - 如何在使用基于 View 的类模型时调用通用Calabash方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29465410/

10-10 23:07