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

标签 java mocking mockito kotlin

我面临的问题是 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关于这个主题,首先建议解决方法。

关于java - 是否可以在 Kotlin 中使用 Mockito?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30305217/

相关文章:

java - 下载 apk,没有这样的文件或目录错误..

Liferay 的 Java 还是 Django?

python - 如何在Python的单元测试方案中模拟HTTP请求

unit-testing - SRP 使类(class)难以测试

java - 玩2.4 Ebean分页问题

java - 重置扫描仪对象读取的字符串

unit-testing - 创建易于维护的测试

java - 如何模拟 Google Guava 缓存生成器?

mockito - 是否有 Mockito 等效的方法来期待像 PowerMock.expectNew 这样的构造函数调用?

java - 如何android单元测试和模拟静态方法