Ruby 如何使实例变量在世界模块中可用?
我有:Ruby 如何使实例变量在世界模块中可用?,ruby,cucumber,Ruby,Cucumber,我有: @user在步骤中定义。当我调用它时,我得到一个错误,因为@user是nil 注意:如果我将代码更改为@user.should\u not \u nil,则不会出现异常 如何让Cucumber实例变量在世界上的模块中可用?这是否有效 module A H = { c: @user } def b H.fetch(:c).should_not be_nil end end World(A) 以下是Matt Wynne在Cucumber邮件列表中的回复: 这个代码没有
@user
在步骤中定义。当我调用它时,我得到一个错误,因为@user是nil
注意:如果我将代码更改为@user.should\u not \u nil
,则不会出现异常
如何让Cucumber实例变量在世界上的模块中可用?这是否有效
module A
H = { c: @user }
def b
H.fetch(:c).should_not be_nil
end
end
World(A)
以下是Matt Wynne在Cucumber邮件列表中的回复: 这个代码没有意义
module A
H = { c: :@user }
def b
send(H.fetch(:c)).should_not be_nil
end
end
World(A)
该行将在定义模块时运行。您要使用的@user实例变量尚不存在-它将仅在运行时存在
H = { c: @user }