我在rails中有一个helper类,它有一个像这样的方法:
def doSomething(name, *args)
result = ""
args.each do |arg|
if (name == 'something')
result += arg
end
end
result
end
我的测试方法如下:
it "Should return a hex array for normal input" do
expect(helper.doSomething("somename", 1, 2,3, 4,5)).to eq("")
end
当我运行rspec时,我遇到以下错误:
引发ArgumentError: 错误的参数数量(1表示0)
我在这里做错了什么?任何帮助表示赞赏。
EDIT ::::
很抱歉,这不是完整的代码。我尝试创建类似的东西,但在纠正我之前的代码时,我发现了其他部分的错误。
答案 0 :(得分:1)
如果您也可以包含错误中的堆栈跟踪,那将会很棒。您的测试看起来是正确的,除非您尝试将固定项添加到result += arg
的字符串,这将导致隐式转换错误。
我先说修复,如果问题仍然存在,请发布其他信息。
答案 1 :(得分:-1)
我认为你在rspec方法中缺少数组语法。
现在你的doSomething方法在rspec中有6个参数,它应该有2个参数(当你在你的帮助器中建立它时它会这样做)。尝试重构你的rspec测试的这一部分(“somename”,1,2,3,4,5)*数字应该是数组语法。