【发布时间】:2016-05-22 13:44:07
【问题描述】:
我有一个简单的测试类
class SimpleClassTest {
private fun <T> anyObject(): T {
return Mockito.anyObject<T>()
}
lateinit var simpleObject: SimpleClass
@Mock lateinit var injectedObject: InjectedClass
@Before
fun setUp() {
MockitoAnnotations.initMocks(this)
}
@Test
fun testSimpleFunction() {
simpleObject = SimpleClass(injectedObject)
simpleObject.simpleFunction()
verify(injectedObject).settingDependentObject(anyObject())
}
}
它工作正常并通过。
由于私有通用 anyObject() 函数只使用一次,所以我决定(手动)内联它,即删除该函数的需要,因此我改变了
verify(injectedObject).settingDependentObject(anyObject())
到
verify(injectedObject).settingDependentObject(Mockito.anyObject<DependentClass>())
但是现在这个错误为
java.lang.IllegalStateException: Mockito.anyObject<DependentClass>() must not be null
将函数调用内联到直接语句中我做错了什么?
使用有什么不同
private fun <T> anyObject(): T {
return Mockito.anyObject<T>()
}
还有以下?
Mockito.anyObject<DependentClass>()
【问题讨论】:
-
您使用的是什么版本的 Kotlin 及其插件?
-
我使用 1.0.1-2。当我切换到 1.0.2 时,它仍然有效。