使用Mockito进行Kotlin Coroutines单元测试



当我尝试模拟和验证调用悬挂函数的活动

时,我将获得以下内容

错误:

参数不同!通缉:usermanager.getAccountinfo((increate_callsgetAccountinformation $ 1)kotlinx.coroutines.coroutines.corimenth.coroutinescope。() -> kotlin.unit.unit); ->在com.pharmacy.accountactivitytests $ oncreate_callsgetAccountInformation $ 1.Doresume(coundactactivitytests.kts.kt:117)实际调用有不同的参数:usermanager.getAccountinfo(()kotlinx.coroutines.experiment.coroutinescope。) ->在com.pharmacy.accountactivity $ loadAccountinfoasync $ 1 $ 1.Doresume(accountactivity.kt:199)

代码:

我的设备测试案例以这样的运行装饰:

    @Test 
    fun onCreate_callsGetAccountInformation() = runBlocking<Unit> 
    { whenever(userManager.getAccountInfo()).thenReturn(AccountInformation()) 
      subject = Robolectric.setupActivity(AccountActivity::class.java) 
      verify(userManager).getAccountInfo() 
    }

在这里 -> usermanager.getAccountinfo()是悬浮函数。

它是Mockito版本,2.10及以下不支持悬挂功能。将其碰到最新(2.12)修复。

相关内容

  • 没有找到相关文章

最新更新