ruby – 将.feature文件中的变量作为数组参数传递
发布时间:2020-12-17 02:17:09 所属栏目:百科 来源:网络整理
导读:我试图将参数从.feature文件(黄瓜)传递到.rb文件中的方法调用 继承人我所拥有的: 功能文件 When I set something to blah 上述特征文件的步骤定义: When /^I set something to (.+)$/ do |value| methodcall(["#{value}"])) end 单独的.rb文件中的方法 def
我试图将参数从.feature文件(黄瓜)传递到.rb文件中的方法调用
继承人我所拥有的: 功能文件 When I set something to blah 上述特征文件的步骤定义: When /^I set something to (.+)$/ do |value| methodcall(["#{value}"])) end 单独的.rb文件中的方法 def methodcall (a=[],b=[],c=[]) a.each {|x| do something with x } b.each {|y| do something with y } c.each {|z| do something with z } ... end 当我在.feature文件中只提供一个参数时,它工作正常.我希望它能为每个数组的一个值工作(尽管没试过) 但我想要做的是在功能文件中写这样的东西 And I set something to "blah,blah1,blah2" and somethingelse to "blah4,blah5" and otherthings to "blah6,blah7" 对于上述,步骤定义看起来像 When /^I set something to (.+) and somethingelse to (.+) and and otherthings to (.+)$/ do |value,value1,value2| methodcall(["#{value}"],["#{value1}"],["#{value2}"])) end 并通过上面的步骤定义,将value,value2中的值传递给对应于a = [],b = [],c = []的参数,并调用methodcall()方法.有人可以帮忙..谢谢. 解决方法
在你的代码中
methodcall(["#{value}"]) 您正在获取字符串值并将其转换为数组的第一个元素,然后将其传递给methodcall(). 我相信你真正想做的是 methodcall(value.split(',')) 这将取你的价值,用逗号分解并将每一个作为数组的元素. 为了说明你的例子,假设methodcall()是: def methodcall (a=[],c=[]) a.each {|x| puts x } b.each {|y| puts y } c.each {|z| puts z } end 然后 value = "blah,blah2" methodcall(["#{value}"]) #=> blah,blah2 在哪里 value = "blah,blah2" methodcall(value.split(,)) #=> blah #=> blah1 #=> blah2 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |