是不是可以设定一个懒惰的财产预期?
以下测试产生一个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:和Kotlin一起使用Mockito 。 例如:
class GarbTest { @Test fun xx() { val aa = mock<AA>() { on { bb } doReturn "zz" } } open class AA() { val bb: String = "cc" } }