当我尝试模拟和验证调用挂起函数的活动时,我得到以下信息
错误:
论据不同!通缉:userManager.getAccountInfo((onCreate_callsGetAccountInformation$1) kotlinx.coroutines.experimental.CoroutineScope.() -> kotlin.Unit); -> at com.pharmacy.AccountActivityTests$onCreate_callsGetAccountInformation$1.doResume(AccountActivityTests.kt:117) 实际调用有不同的参数:userManager.getAccountInfo(() kotlinx.coroutines.experimental.CoroutineScope.() -> kotlin.Unit) ->在 com.pharmacy.AccountActivity$loadAccountInfoAsync$1$1.doResume(AccountActivity.kt:199)
代码:
我的单元测试用例用 runBlocking 装饰,如下所示:
@Test
fun onCreate_callsGetAccountInformation() = runBlocking<Unit>
{ whenever(userManager.getAccountInfo()).thenReturn(AccountInformation())
subject = Robolectric.setupActivity(AccountActivity::class.java)
verify(userManager).getAccountInfo()
}
这里 -> usermanager.getAccountInfo() 是一个挂起函数。