【发布时间】:2018-09-24 07:34:42
【问题描述】:
我在 Kotlin 中使用 ArgumentCaptor 和 @Captor 注释,就像这样
@Captor private lateinit var captor: ArgumentCaptor<MyObject>
@Mock private lateinit var mockObject: InnerObject
private lateinit var objectToTest: MyClass
@Before
fun setUp() {
MockitoAnnotations.initMocks(this)
objectToTest = MyClass(mockObject)
}
fun testSomething() {
objectToTest.doSomething()
verify(mockObject).callMethod(captor.capture())
assertThat(expectedResult, captor.value)
}
方法 callMethod() 在 doSomething() 内部被调用,我想捕获发送给它的参数。
我的问题是我得到了:
java.lang.IllegalStateException: captor.capture() must not be null
我使用 java 尝试了相同的方法并且它正在工作,当我将它转换为 Kotlin 时,我得到了异常。
这与 Kotlin 有关吗?还是我没有以正确的方式使用@Captor?
【问题讨论】:
标签: android unit-testing kotlin mockito