Kotlin,如何测试(int)数组
Kotlin, how to test (int)array
我想找到一种简洁明了的方法来测试 intarray
一开始我试过
mFaces[0].mIndices shouldBe intArrayOf(0, 1, 2)
其中 mIndices
是
var mIndices: IntArray = IntArray(0)
但失败了。 Intellij 还建议我用 Array
s
覆盖 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 个选择:
使用深度比较:
Arrays.deepequals(mFaces[0].mIndices, intArrayOf(0, 1, 2))
使用列表:
mFaces[0].mIndices.toList() == listOf(0, 1, 2)
我想找到一种简洁明了的方法来测试 intarray
一开始我试过
mFaces[0].mIndices shouldBe intArrayOf(0, 1, 2)
其中 mIndices
是
var mIndices: IntArray = IntArray(0)
但失败了。 Intellij 还建议我用 Array
s
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 个选择:
使用深度比较:
Arrays.deepequals(mFaces[0].mIndices, intArrayOf(0, 1, 2))
使用列表:
mFaces[0].mIndices.toList() == listOf(0, 1, 2)