小编kgb*_*ier的帖子

如何将协程作为单元测试的阻塞?

我已经开始为我的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)

junit android mockito kotlin kotlinx.coroutines

6
推荐指数
1
解决办法
1225
查看次数

标签 统计

android ×1

junit ×1

kotlin ×1

kotlinx.coroutines ×1

mockito ×1