什么是测试(0)在这个片段kotlinlang.org?

我在这里试图解决KotlinKoans页面中的“运行”问题

这是我的实现

package runs fun runs(a: IntArray): Int { var numberOfRuns = 1; for (index in 0..a.size-2) { if (a[index+1] != a[index]) numberOfRuns++ } return numberOfRuns } 

这里是针对实现运行的测试套件

 class Tests { @Test fun testRuns1() { test(0) } @Test fun testRuns2() { test(1, 1) } @Test fun testRuns3() { test(3, 1, 2, 3) } @Test fun testRuns4() { test(3, 1, 2, 2, 3) } @Test fun testRuns5() { test(3, 1, 1, 2, 3) } @Test fun testRuns6() { test(1, 1, 1, 1, 1) } @Test fun testRuns7() { test(3, 1, 1, 1, 0, 1, 1) } @Test fun testRuns8() { test(3, 1, 1, 1, 0, 1) } @Test fun testRuns9() { test(5, 1, 0, 1, 0, 1) } } fun test(expected: Int, vararg data: Int) { assertEquals(expected, runs(data), "\ndata = ${Arrays.toString(data)}") } 

除了testRuns1()之外的所有测试通过,我不明白测试(0)做了什么,因为test()函数将两个参数作为输入,期望值和实际值。 我错过了什么?

测试的第二个参数是可变参数,这意味着它可以从0到多个整数。 因此,测试(0)的调用预期= 0,数据=空的可变参数列表。

运行(数据)的调用则返回1,因为列表是空的,for循环没有任何东西可以循环。

编辑:虽然现在我想到了。 这意味着这个测试会失败,因为它声称预期的运行次数应该是0,但是据我所知,它将回到1。