0

我有:

module A
  H = { c: @user }

  def b
    H.fetch(:c).should_not be_nil
  end
end
World(A)

@user在 Cucumber 步骤中定义。当我调用它时,我收到一个错误,因为@user 为零。

注意:如果我将代码更改为@user.should_not be_nil,我不会得到异常。

如何让 Cucumber 实例变量在 World 的模块中可用?

4

2 回答 2

0

这行得通吗?

module A
  H = { c: :@user }

  def b
    send(H.fetch(:c)).should_not be_nil
  end
end
World(A)
于 2013-02-12T13:25:53.377 回答
0

这是我在 Cucumber 邮件列表中收到的 Matt Wynne 的回复:

这段代码没有意义

   H = { c: @user }

此行将在定义模块时运行。您要使用的 @user 实例变量尚不存在 - 它只会在运行时存在。

于 2013-02-20T20:26:40.630 回答