¿Alguien podría proporcionar un ejemplo avanzado del uso de los nuevos TestScope y TestScope.launch mientras se prueba con rutinas?
Parece que en la nueva versión kotlinx.coroutines.test agregaron algo llamado TestScope a la biblioteca. Además, han desaprobado el antiguo TestCoroutineDispatcher y le dijeron que usara TestScope.runTests en su lugar, sin embargo, no agregaron mucha documentación sobre cómo usarlo. Todo lo que pude encontrar es esto .
¿Alguien puede proporcionarme algunos ejemplos adicionales de uso en diferentes escenarios?
También podría solucionar este problema con @Joffrey mencionado en el comentario. Solo necesita usar runTest { } para usar el alcance de la rutina en el código de prueba. Al usar runTest { } puede usar TestScope dentro del bloque con this .
En mi caso, había una función de flujo en viewModel algo como esto. Se estaba ejecutando dentro de viewModelScope .
fun getFriendDataWithFlow() { viewModelScope.launch { repository.loadFriendsWithFlow() ... } }Y debería probar esto en mi código de prueba, y lo usé así.
@ExperimentalCoroutinesApi @Before fun setup() { Dispatchers.setMain(StandardTestDispatcher()) } @ExperimentalCoroutinesApi @Test fun temp() { runTest { viewModel.getFriendDataWithFlow() } } Todo lo que hice fue agregar el bloque runTest { } y agregar el código de rutina dentro del bloque. Y funcionó para mí. La dependencia de mi rutina de prueba era "org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.0-RC" .