2

我正在按照基于视图的类模型为我的应用程序设置 Calabash 测试框架,即每个视图都有一个包含该视图所需方法的类。

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

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

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

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

1 回答 1

1

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

让您的页面对象类继承自葫芦页面对象基础 - http://www.rubydoc.info/gems/calabash-cucumber/Calabash/IBase 并且当您创建页面对象的新实例时传入 self.

class MyPage < Calabash::IBase
...

new_instance_of_page_object = MyPage.new(self)

在这种特定情况下,从 IBase 继承将使您能够访问您正在谈论的功能,但传入 self 将意味着您可以访问您在 env 文件中添加的任何其他内容。

于 2015-04-07T09:08:02.397 回答