Kotlin,如何测试(int)数组

Kotlin, how to test (int)array

我想找到一种简洁明了的方法来测试 intarray

一开始我试过

mFaces[0].mIndices shouldBe intArrayOf(0, 1, 2)

其中 mIndices

var mIndices: IntArray = IntArray(0)

但失败了。 Intellij 还建议我用 Arrays

覆盖 equals()

然后我想尝试这样的事情

mFaces[0].mIndices.all { it. == index } shouldBe true

但似乎无法在 all{..} 中检索 it 的索引,或者这是

var p = 0
mFaces[0].mIndices.all { it == p++ } shouldBe true

唯一的可能?

在 Java (Kotlin) 中,数组通过引用进行比较,而不是 通过内容进行比较。也就是说 intArrayOf(1, 2, 3) != intArrayOf(1, 2, 3)

要比较数组的内容,您有 2 个选择:

  1. 使用深度比较:

    Arrays.deepequals(mFaces[0].mIndices, intArrayOf(0, 1, 2))

  2. 使用列表:

    mFaces[0].mIndices.toList() == listOf(0, 1, 2)