您好,其他开发人员,
我有以下问题:
假设我有一个名为UseCaseX的类:
class UseCaseX (private val repository: Repository) {
override suspend fun invoke(params: Unit?) = repository.call()
}
现在,此UseCaseX在ViewModel类中使用,如下所示:
...
val result = async { useCaseX.invoke(null) }
...
然后,我使用MockK在ViewModelTest中模拟UseCaseX,如下所示:
val useCaseX = mockk<UseCaseX>(relaxUnitFun = true)
然后出现以下错误:
io.mockk.MockKException: no answer found for: UseCaseX(#7).invoke(null, continuation {})
at io.mockk.impl.stub.MockKStub.defaultAnswer(MockKStub.kt:90)
at io.mockk.impl.stub.MockKStub.answer(MockKStub.kt:42)
显然,UseCaseX.invoke(params)
函数在async{}
期间扩展了一个附加参数,到目前为止,还没有答案。
问题:在这种情况下,如何为模拟提供答案?
答案 0 :(得分:0)
使用withContext(Dispatchers.Default)
代替async
。应该工作!