如何在黄瓜中调用方法 - 步骤定义

时间:2014-10-04 18:44:32

标签: ruby cucumber

我是Cucumber框架的新手。我试图在步骤定义中调用Ruby方法。以下是我在lib / methods.rb

中定义方法的方法
class Test_class

  def create_test_scenario()
   puts "here!!!"
  end

end

这就是我尝试在步骤定义中调用方法的方法:

 And(/^I create scenarios$/) do
   Test_class.create_test_scenario
 end

我得到了未初始化的常量Test_class(NameError)'当我运行测试。有任何想法吗?感谢。

2 个答案:

答案 0 :(得分:1)

您尚未实例化Test_class对象。例如:

class Test_class
  def create_test_scenario
    puts "here!!!"
  end
end

Test_class.new.create_test_scenario  # notice `new` method chained here
#=> here!!!

勘误表:

这是documentation的链接,解释了initialize方法以及如何使用它在初始化时设置对象状态。

对于类(和模块)名称,ruby约定是使用CamelCase。例如,TestClass代替Test_class

答案 1 :(得分:0)

正如orde所说,这归结于初始化。为了帮助将代码放入上下文中,您可以将步骤定义中的类对象初始化为实例变量(以@开头)。所以它看起来像这样:

 And(/^I create scenarios$/) do
   @Test_class = Test_class.new
   @Test_class.create_test_scenario
 end