是不是可以设定一个懒惰的财产预期?

以下测试产生一个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.bbfinalfinal / 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" } }