【发布时间】:2014-10-16 22:17:00
【问题描述】:
我一直在对黄瓜步骤定义局部变量进行相当多的研究,但我在任何地方都找不到黄瓜如何处理局部变量,而且我遇到了一些奇怪的行为,就好像它们不是局部变量一样。变量使用相同的内存地址并保持状态,例如:
Then(/^the password is "(.?*)"$/) do |password|
puts password
puts password.object_id
password.concat("s")
end
变量 password 的输入将是相同的 - password1234、password1234、password1234,但输出将是:
password1234
32607252
password1234
32607240
password1234s
32607252
password1234ss
32607252
password1234s
32607240
注意对象地址 -32607252- 是如何被重用的,我用多个场景示例运行了这个,很多时候对象地址在不同的测试用例场景中是重复的,即使“s”的串联也会出现密码应该是一个局部变量。
我做错了吗?这是黄瓜虫吗?
【问题讨论】: