在测试暂停功能时,我使用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函数的问题?请记住,在两种情况下,真实方法调用均可以正常工作。在此先感谢