【发布时间】:2017-01-30 21:26:16
【问题描述】:
我正在尝试在 Kotlin 上进行测试:
verify(myInterface).doSomething(argumentCaptor.capture())
capture.value.invoke(0L)
doSomething 在哪里:
doSomething((Long) -> Unit)
如何为此创建 ArgumentCaptor?现在我正在这样做
inline fun <reified T : Any> argumentCaptor() = ArgumentCaptor.forClass(T::class.java)!!
val captor = argumentCaptor<(Long) -> Unit>()
verify(mainApiInterface!!).downloadUserProfilePicture(captor.capture())
captor.value.invoke(0L)
但我得到 java.lang.IllegalStateException: captor.capture() 不能为空
我也尝试过集成 mockito-kotlin,但出现 PowerMockito 错误:
在 org.mockito.internal.MockitoCore 的类层次结构中找不到名为“reported”的实例字段。
【问题讨论】:
-
仅作记录:PowerMock 对字节码所做的事情在使用纯 java 时会让人头疼。我真的不会将 PowerMockito 与除 javac 之外的其他任何东西生成的字节码一起使用。
标签: android function lambda mockito kotlin