Kotlin 使用 ArgumentCaptor.capture() returns null
Kotlin using ArgumentCaptor.capture() returns null
我对测试还很陌生,所以我可能正在做一些事情wrong.I正在尝试捕获传递给方法的值
@Mock
private lateinit var service: TestService
@InjectMocks
private lateinit var underTest: UnderTestService
@org.junit.jupiter.api.Test
fun `testMethod`() {
//given
val var1 = Test.Value
val var2 = TestClass::class.java
val var3 = listOf(Entry1(), Entry2())
//when
underTest.method(var1, var2, var3)
val argumentCaptor = ArgumentCaptor.forClass(String::class.java)
verify(service, times(2)).method(
argumentCaptor.capture(),
argumentCaptor.capture()
)
在这里,出于某种原因验证 argumentCaptor.capture() return null 之后,我不明白我做错了什么?
java.lang.NullPointerException: argumentCaptor.capture() must not be null
我认为它与 kotlin 相关,我尝试获取参数的方法的签名如下所示
fun method(param1: String, vararg param2: String?) {
//do something
}
MockitoKotlinHelpers.kt 可以帮到你。捕获函数提供了调用ArgumentCaptor.capture()
的方法
示例:
verify(service, times(2)).method(
capture(argumentCaptor),
capture(argumentCaptor));
我对测试还很陌生,所以我可能正在做一些事情wrong.I正在尝试捕获传递给方法的值
@Mock
private lateinit var service: TestService
@InjectMocks
private lateinit var underTest: UnderTestService
@org.junit.jupiter.api.Test
fun `testMethod`() {
//given
val var1 = Test.Value
val var2 = TestClass::class.java
val var3 = listOf(Entry1(), Entry2())
//when
underTest.method(var1, var2, var3)
val argumentCaptor = ArgumentCaptor.forClass(String::class.java)
verify(service, times(2)).method(
argumentCaptor.capture(),
argumentCaptor.capture()
)
在这里,出于某种原因验证 argumentCaptor.capture() return null 之后,我不明白我做错了什么?
java.lang.NullPointerException: argumentCaptor.capture() must not be null
我认为它与 kotlin 相关,我尝试获取参数的方法的签名如下所示
fun method(param1: String, vararg param2: String?) {
//do something
}
MockitoKotlinHelpers.kt 可以帮到你。捕获函数提供了调用ArgumentCaptor.capture()
示例:
verify(service, times(2)).method(
capture(argumentCaptor),
capture(argumentCaptor));