我是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)'当我运行测试。有任何想法吗?感谢。
答案 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