当我尝试模拟并验证调用暂停功能的 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)进行了修复。

08-18 01:30