下面的测试产生一个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" }
}
}
Run Code Online (Sandbox Code Playgroud)
在您的示例中,AA.bb是final。final/ private/ equals()/hashCode()方法不能存根/通过验证的Mockito。您需要标记bb为open:
open class AA(){
open val bb by lazy { "cc" }
}
Run Code Online (Sandbox Code Playgroud)
您也可以考虑使用nhaarman/mockito-kotlin: Using Mockito with Kotlin。例如:
class GarbTest {
@Test
fun xx() {
val aa = mock<AA>() {
on { bb } doReturn "zz"
}
}
open class AA() {
val bb: String = "cc"
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
533 次 |
| 最近记录: |