当我尝试模拟并验证调用暂停功能的 Activity 时,我得到以下提示
错误:
参数不一样!通缉:
userManager.getAccountInfo(
(onCreate_callsGetAccountInformation $ 1)kotlinx.coroutines.experimental.CoroutineScope。()-> kotlin.Unit
);
-> 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()是一个暂停函数。
最佳答案
它是模拟版本,版本2.10及以下不支持暂停功能。将其更改为最新版本(2.12)进行了修复。