1

当我尝试模拟和验证调用挂起函数的活动时,我得到以下信息

错误:

论据不同!通缉: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() 是一个挂起函数。

4

1 回答 1

1

是 mockito 版本,2.10 及以下不支持挂起功能。将它撞到最新(2.12)修复它。

于 2017-11-29T21:04:48.093 回答