Minitest :: UnexpectedError:ArgumentError:参数个数错误(0表示2)

时间:2015-11-30 16:29:24

标签: ruby-on-rails ruby minitest

我在第28行定义了一个函数foo,如下所示:

def test_foo(strArray,valid=true)

我在我的代码中的两个地方调用函数如下:

arr1 = ["something","anotherthing"]
test_foo(arr1,false)

在另一个地方如下:

arr2 = ["another","blah"]
test_foo(arr2)

这是我在运行测试时遇到的错误:

Minitest::UnexpectedError: ArgumentError: wrong number of arguments (0 for 2)
     test/foo_test.rb:28:in `test_foo'
test/foo_test.rb:28:in `test_foo'

如何解决此问题?

2 个答案:

答案 0 :(得分:0)

我弄清楚问题是什么。我将函数命名为test_foo,minitest正在处理测试函数而不是辅助函数。

我将帮助函数test_foo重命名为check_foo,它通过了测试而没有错误。

答案 1 :(得分:0)

有点晚了,但我一直在同一情况下。

原因是Rails定义了执行测试的方法,这些方法的名称以您使用的相同模式开头:test_*

test(name, &block)到函数声明的转换可以在declarative file

中找到

然后调用这些定义的函数进行测试执行。