我有一个在IntelliJ-IDEA中运行的Kotlin多平台项目。
我具有这样的功能:
fun getsomeDataBytes(): ByteArray {
val x = arrayListOf<Byte>()
x.add(0x01)
x.add(0x02)
return x.toByteArray()
}
此功能存在于commonmain
模块中的文件中。
在commonTest
模块中,我有一个这样的测试用例:
@Test
fun testGetsomeDataBytes() {
val expectedResult = byteArrayOf(0x01,0x02)
val response = myModule.getsomeDataBytes()
assertSame(expectedResult,response)
assertTrue { expectedResult == response }
assertEquals(expectedResult,response)
}
无论我使用这三行中的哪一行(我已禁用它们以确保一次只运行1条),我的测试都将失败,并显示如下错误:
Expected :[B@79afa0e2
actual :[B@269f6bfe
我猜这是因为它没有比较内容。如果要在Android Studio中运行此程序,则需要进行jUnit测试,并进行如下测试:
assertThat(response,IsEqual.equalTo(expectedResult))
但是,在Kotlin测试中,我无法使用assertThat
或IsEqual
,所以我很困。
有人知道我如何解决此问题?任何帮助将不胜感激。