这个rspec测试有什么问题

时间:2014-08-13 00:27:08

标签: ruby-on-rails ruby testing rspec

我在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 ::::

很抱歉,这不是完整的代码。我尝试创建类似的东西,但在纠正我之前的代码时,我发现了其他部分的错误。

2 个答案:

答案 0 :(得分:1)

如果您也可以包含错误中的堆栈跟踪,那将会很棒。您的测试看起来是正确的,除非您尝试将固定项添加到result += arg的字符串,这将导致隐式转换错误。

我先说修复,如果问题仍然存在,请发布其他信息。

答案 1 :(得分:-1)

我认为你在rspec方法中缺少数组语法。

现在你的doSomething方法在rspec中有6个参数,它应该有2个参数(当你在你的帮助器中建立它时它会这样做)。尝试重构你的rspec测试的这一部分(“somename”,1,2,3,4,5)*数字应该是数组语法。