ViewModelScope和IdlingResource

时间:2019-11-21 08:58:21

标签: scope android-espresso android-viewmodel

在我的项目中,我使用AndroidX Lifecycle ViewModel(2.2.0-rc01)即时通讯,并且即时通讯需要编写两次浓缩咖啡测试,以告诉浓缩咖啡测试过的应用程序仍然很忙。 viewModelScope需要告诉espresso很忙。

val ViewModel.viewModelScope: CoroutineScope
    get() {
        val scope: CoroutineScope? = this.getTag(JOB_KEY)
        if (scope != null) {
            return scope
        }
        return setTagIfAbsent(JOB_KEY,
            CloseableCoroutineScope(SupervisorJob() + Dispatchers.Main.immediate))
    }

internal class CloseableCoroutineScope(context: CoroutineContext) : Closeable, CoroutineScope 
{
     override val coroutineContext: CoroutineContext = context

     override fun close() {
         coroutineContext.cancel()
     }
}

扩展viewModelScope并使用CountingIdleResource是有效的解决方案吗? 还是我只需要InstantTaskExecutorRule?

协程作业具有#invokeOnCompletion函数,可用于减少空闲资源。

谢谢

似乎正在进行一些讨论:https://github.com/Kotlin/kotlinx.coroutines/issues/242

0 个答案:

没有答案