使用Mockk

时间:2019-12-12 21:53:16

标签: android kotlin kotlin-coroutines mockk

在测试暂停功能时,我使用Mockk有一个奇怪的行为。为了简洁起见,我会发布我正在努力的相关部分。如果我有这样的代码

FooUsecase.kt

override suspend operator fun invoke(param: Boo?): Result<Foo> {
    param?.let {
        return Repository.getFoo(param)
    } ?: run{
        return Repository.getFoo()
    }
}

在我的ViewModel单元测试中是否可以:

coEvery{mockFooUsecase(mockBooObject)} returns Result.Success(Foo)

它不返回Result.Success(或进入我的成功阻止调用)。但这确实会返回成功

 coEvery{mockFooUsecase(null)} returns Result.Success(Foo)

使用Mockk进行单元测试挂起调用功能时是否发生了某些事情,或者是否存在我似乎缺少的有关重载Invoke函数的问题?请记住,在两种情况下,真实方法调用均可以正常工作。在此先感谢

0 个答案:

没有答案