黄瓜步骤定义局部变量被重用?

时间:2014-10-15 01:17:40

标签: ruby cucumber

我一直在研究黄瓜步骤定义局部变量,但我无法找到黄瓜处理局部变量的地方,我遇到了一些奇怪的行为,好像它们不是局部变量。变量使用相同的内存地址和维护状态,例如:

Then(/^the password is "(.?*)"$/) do |password|
  puts password
  puts password.object_id
  password.concat("s")
end

变量密码的输入将是相同的 - 密码1234,密码1234,密码1234但输出将是:

password1234
32607252

password1234
32607240

password1234s
32607252

password1234ss
32607252

password1234s
32607240

注意对象地址-32607252-是如何被重用的,我用多个场景示例来运行它,并且很多时候对象地址在不同的测试用例场景中是重复的,并且" s"即使密码应该是一个局部变量,也会出现。

我做错了吗?这是黄瓜虫吗?

1 个答案:

答案 0 :(得分:1)

我给黄瓜开发团队发了电子邮件,他们已经开了一个问题来讨论这个

https://github.com/cucumber/cucumber/issues/760