我已经开始为我的MVP Android项目编写单元测试,但是我的依赖于协程的测试间歇性地失败了(通过记录和调试,我确认有时会提前进行验证delay,当然要添加此修复程序)
我已经尝试过使用,runBlocking并且Dispatchers.setMain(mainThreadSurrogate)从中发现了org.jetbrains.kotlinx:kotlinx-coroutines-test,但是到目前为止,尝试进行如此多的组合并没有取得任何成功。
abstract class CoroutinePresenter : Presenter, CoroutineScope {
private lateinit var job: Job
override val coroutineContext: CoroutineContext
get() = job + Dispatchers.Main
override fun onCreate() {
super.onCreate()
job = Job()
}
override fun onDestroy() {
super.onDestroy()
job.cancel()
}
}
class MainPresenter @Inject constructor(private val getInfoUsecase: GetInfoUsecase) : CoroutinePresenter() {
lateinit var view: View
fun inject(view: View) {
this.view = view
}
override fun onResume() {
super.onResume()
refreshInfo()
}
fun refreshInfo() …Run Code Online (Sandbox Code Playgroud)