以下测试得出一个NullPointerException
。不可能对懒惰的财产设定期望吗?
class GarbTest {
@Test
fun xx(){
val aa = Mockito.mock(AA::class.java)
Mockito.`when`(aa.bb).thenReturn("zz")
}
open class AA(){
val bb by lazy { "cc" }
}
}
在您的示例中,AA.bb
是final
。final
/ private
/ equals()
/hashCode()
方法不能存根/通过验证的Mockito。您需要标记bb
为open
:
open class AA(){
open val bb by lazy { "cc" }
}
您可能还考虑使用nhaarman / mockito-kotlin:将Mockito与Kotlin一起使用。例如:
class GarbTest {
@Test
fun xx() {
val aa = mock<AA>() {
on { bb } doReturn "zz"
}
}
open class AA() {
val bb: String = "cc"
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句