是否有可能在Kotlin模拟Mockito的访问者?

时间:2016-11-14 12:20:29

标签: mockito kotlin

是否有可能通过Mockito模拟房产的吸气剂和设定者?像这样:

@Test
fun three() {
    val m = mock<Ddd>() {
//        on { getQq() }.doReturn("mocked!")
    }
    assertEquals("mocked!", m.qq)
}
open class Ddd {
     var qq : String = "start"
        set(value) {
            field = value + " by setter"
        }
        get() {
            return field + " by getter"
        }
}

2 个答案:

答案 0 :(得分:11)

模拟getter只需写:

val m = mock<Ddd>()
`when`(m.qq).thenReturn("42")

我还建议使用mockito-kotlin来使用有用的扩展程序和函数,例如whenever

val m = mock<Ddd>()
whenever(m.qq).thenReturn("42")

答案 1 :(得分:6)

补充IRus的答案,您还可以使用以下语法:

val mockedObj = mock<SomeClass> {
  on { methodA() } doReturn "mockA"
  on { methodB() } doReturn "mockB"
}