【发布时间】:2023-03-17 17:57:01
【问题描述】:
假设我们有一个这样的类:
class Whatever {
private var something = false
fun aMethod(): Int {
return if( something ) {
1
} else {
0
}
}
}
根据documentation,看来我应该能够做到以下几点:
val classUnderTest = spyk(Whatever())
every { classUnderTest getProperty "something" } returns true
assertThat(classUnderTest.aMethod()).isEqualTo(1)
但我得到了错误:io.mockk.MockKException: Missing calls inside every { ... } block
我正在使用 mockk 1.8.5、kotlin 1.2.51
【问题讨论】:
-
目前,AFAIK,私人properties mocking are not yet supported。检查链接的问题以了解此行为的发展
-
为什么不使用getter?并嘲笑它。
-
@RafaelRuizMuñoz 不想公开或创建仅用于测试的方法
-
你总是可以使用 Super Reflect github.com/dpreussler/SuperReflect 但对我来说,我不知道如何,当
testCoverage false时它不起作用 -
@RafaelRuizMuñoz 我试过了,但它不起作用。你真的尝试过吗?对你有用吗?