我在第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'
如何解决此问题?
答案 0 :(得分:0)
我弄清楚问题是什么。我将函数命名为test_foo,minitest正在处理测试函数而不是辅助函数。
我将帮助函数test_foo重命名为check_foo,它通过了测试而没有错误。
答案 1 :(得分:0)
有点晚了,但我一直在同一情况下。
原因是Rails定义了执行测试的方法,这些方法的名称以您使用的相同模式开头:test_*
从test(name, &block)
到函数声明的转换可以在declarative file
然后调用这些定义的函数进行测试执行。