我面临的问题是Matchers.anyObject()回报null。当用于仅接受非空类型的模拟方法时,它将导致引发“应该不为空”异常。
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 { ... } }
这是有关此主题的更多讨论,其中首先提出了解决方法。