我正面临着与下面问题相同的问题。请帮助我解决。
Mock a "global" property in Kotlin
我尝试了上述问题中提供的解决方案,但没有任何工作。我问同样的问题,因为我不能发表任何评论上一个问题。
我正在为下面的课程编写测试用例
class CustomLogger constructor(val ctx: Context, embEnabled: Boolean = false) : Logger {
private val loggers = arrayListOf<Logger>()
fun get() = loggers
init {
if (embEnabled)
loggers.add(Emb(ctx))
if (BuildConfig.DEBUG)
loggers.add(DebugLogger(ctx))
}
override fun logError(t: Throwable, msg: String?) {
loggers.forEach { logger ->
logger.logError(t, msg)
}
}
}
enter code here
这里我尝试模拟get()或init{}
1条答案
按热度按时间3okqufwl1#
这是一个该死问题,但我注意到这只能在单元测试中使用,因为Android JVM不支持mockito静态模拟
现在我创建了处理无参数方法的方法,您可以根据需要修改它,只需使用它的名称传递类
工作起来就像一个魅力享受😁
我已经更新了上面的代码,任何人都可以在Kotlin中使用静态成员
你的更新使得这很容易做到,现在它是一个类,你可以完全模拟和容易地模拟任何方法