java - 是否可以在 Kotlin 中使用 Mockito?

我面临的问题是 Matchers.anyObject() 返回 null。当用于模拟仅接受不可为空类型的方法时,它会导致抛出“不应为空”异常。

`when`(mockedBackend.login(anyObject())).thenAnswer { invocationOnMock -> someResponse }

模拟方法:

public open fun login(userCredentials: UserCredentials): Response

最佳答案

有两种可能的解决方法:

private fun <T> anyObject(): T {
    Mockito.anyObject<T>()
    return uninitialized()
}

private fun <T> uninitialized(): T = null as T

@Test
fun myTest() {
    `when`(mockedBackend).login(anyObject())).thenAnswer { ... }
}

另一种解决方法是

private fun <T> anyObject(): T {
    return Mockito.anyObject<T>()
}

@Test
fun myTest() {
    `when`(mockedBackend).login(anyObject())).thenAnswer { ... }
}

这里是 some more discussion关于这个主题,首先建议解决方法。

https://stackoverflow.com/questions/30305217/

相关文章:

java - 为什么 Kotlin 中没有并发关键字?

kotlin - Kotlin 协程如何比 RxKotlin 更好?

spring - 如何在kotlin中使用@Autowired之类的spring注解?

kotlin - 函数中Unit-return的目的是什么

list - 如何在 Kotlin 中初始化 List

kotlin - Kotlin 中的 "receiver"是什么?

kotlin - 有什么作用? : do in Kotlin?(猫王运算符)

kotlin - 在 Kotlin 中进行空检查的最佳方法?

database - Android Room Persistence 库和 Kotlin

kotlin - 如何在 Kotlin 中同时捕获多个异常?