audriusk
01/31/2020, 3:57 PM@Test
fun someTest() = runBlockingTest {
Dispatchers.setMain(coroutineContext[ContinuationInterceptor] as CoroutineDispatcher)
val viewModel = arrange()
viewModel.viewModelScope.launch {
throw IllegalStateException("mm")
}
}
From my understanding problem is viewModelScope
extension which creates SupervisorJob
at https://cs.android.com/androidx/platform/frameworks/support/+/androidx-master-dev:lifecycle/lifecycle-viewmodel-ktx/src/main/java/androidx/lifecycle/ViewModel.kt;l=42;drc=9f40e609cef60d1889e2b13d48ba1dbb8aa345e3
What would be appropriate way to make such test method fail?tseisel
01/31/2020, 5:36 PMaudriusk
01/31/2020, 5:38 PMcoroutineContext[ContinuationInterceptor] as CoroutineDispatcher
tseisel
01/31/2020, 5:50 PMrunBlockingTest
and not using an explicit TestCoroutineDispatcher
like in the guide ?audriusk
01/31/2020, 5:52 PMaipok
02/03/2020, 8:56 AMrunBlockingTest
has a bug still that mentioned https://github.com/Kotlin/kotlinx.coroutines/issues/1204
At least looks very similar. Usually for testing ViewModel classes I'm using injected CoroutineContext
this allow me to be sure that view model is using Test Dispatcher.audriusk
02/03/2020, 10:32 AM