我一直在研究黄瓜步骤定义局部变量,但我无法找到黄瓜处理局部变量的地方,我遇到了一些奇怪的行为,好像它们不是局部变量。变量使用相同的内存地址和维护状态,例如:
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"即使密码应该是一个局部变量,也会出现。
我做错了吗?这是黄瓜虫吗?