【问题标题】:Cucumber: Unable to see methods of a module included in the World?Cucumber:看不到 World 中包含的模块的方法?
【发布时间】:2017-02-14 10:59:36
【问题描述】:

我正在使用 cucumber/ruby,我想创建一个带有一些方法的新模块,以便在我的步骤定义中使用它们。

我在这里阅读如何做到这一点,https://github.com/cucumber/cucumber/wiki/A-Whole-New-World。但是当我尝试以下操作时,我得到了一个错误:

  • 在 /root_location/lib/new_module.rb 下创建新模块
  • 将模块创建为:

.

module Newmodule
  def here
    puts "here"
  end
end
World(Newmodule)

但是,当我尝试使用步骤定义中的“这里”方法时,我得到:

# (NameError) 的未定义局部变量或方法 `here'

知道我做错了什么吗?

【问题讨论】:

  • 为什么是 cucumber-jvm 标签?你的问题是专注于红宝石而不是 Java。
  • 因为正如您从下面的答案中看到的那样,这不是一个红宝石问题,它与黄瓜框架有关......所以我想这总是关于语言的情况。跨度>
  • 该答案不适用于 cucumber-jvm。您需要定义胶水目录。参见例如stackoverflow.com/questions/17491989/…

标签: ruby rubygems cucumber cucumber-jvm


【解决方案1】:

模块需要位于features,否则不会被添加到World中。除非您明确告诉 Cucumber,否则 Cucumber 不会在功能之外寻找任何东西。

将此代码放入features/supportfeatures/step_definitions

【讨论】:

  • 谢谢你,我不知道。知道了这一点,我在支持下创建了一个 file.rb,我需要我在我的库中获得并从这里导出到 World 的 ruby​​ 文件。非常感谢!
猜你喜欢
  • 1970-01-01
  • 2019-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-24
  • 2011-03-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多