Junit 如何在Kotlin中测试/访问伴生对象扩展函数?

Junit 如何在Kotlin中测试/访问伴生对象扩展函数?,junit,kotlin,junit5,kotlin-extension,Junit,Kotlin,Junit5,Kotlin Extension,我有一个Base64Util类,其中有一个扩展函数decodeBase64ToByteArray: class Base64Util { companion object { fun String.decodeBase64ToByteArray(): ByteArray { return Base64.getUrlDecoder().decode(this) } } } 现在我想通过Base64IUtilTest测试我的Base64Util。当然,我可以

我有一个Base64Util类,其中有一个扩展函数
decodeBase64ToByteArray

class Base64Util {
  companion object {
    fun String.decodeBase64ToByteArray(): ByteArray {
        return Base64.getUrlDecoder().decode(this)
    }
  }
}
现在我想通过
Base64IUtilTest
测试我的
Base64Util
。当然,我可以访问非扩展函数,但是如何从
Base64UtilTest
访问/测试
String.decodeBase64ToByteArray()

您不能简单地从外部访问成员扩展函数,例如
decodeBase64ToByteArray
。只有当您进入在中定义的对象的范围时,这才是可能的:

with(Base64Util.Companion){ //.Companion could be removed
    "123fsad123".decodeBase64ToByteArray()
}
例如,可以将util函数定义为文件
base64Utils.kt
中的顶级函数。这样,就可以以静态方式调用它们,而不会产生任何问题

您不能简单地从外部访问成员扩展功能,例如
decodeBase64ToByteArray
。只有当您进入在中定义的对象的范围时,这才是可能的:

with(Base64Util.Companion){ //.Companion could be removed
    "123fsad123".decodeBase64ToByteArray()
}

例如,可以将util函数定义为文件
base64Utils.kt
中的顶级函数。这样,就可以以静态方式调用它们,而不会产生任何问题

我会省略
伴生对象
,所以你基本上只有一个空的函数(或者只有
导入
语句)
kt
-文件我会省略
伴生对象
,所以你基本上只有一个空的函数(或仅
import
package
语句)
kt
-file为什么在'base64Utils.kt'中使用小写b?这是util的标准吗?为什么在'base64Utils.kt'中使用小写b?这是util的标准吗?