我對測驗很陌生,所以我可能做錯了什么。我正在嘗試捕獲傳遞給方法的值
@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() 出于某種原因回傳 null 之后,我不明白我做錯了什么?
java.lang.NullPointerException: argumentCaptor.capture() must not be null
我認為它與 kotlin 相關,我試圖獲取引數的方法的簽名看起來像這樣
fun method(param1: String, vararg param2: String?) {
//do something
}
uj5u.com熱心網友回復:
MockitoKotlinHelpers.kt可以在這里為您提供幫助。捕獲函式提供了一種呼叫方式ArgumentCaptor.capture()
例子:
verify(service, times(2)).method(
capture(argumentCaptor),
capture(argumentCaptor));
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/428171.html
