Tester les fonctions suspendues et les flux
Utilisez runTest et Turbine pour vérifier le comportement asynchrone.
Tester les fonctions suspendues et les flux est une leçon Kotlin Multiplatform Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Kotlin Multiplatform Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Kotlin Multiplatform Academy comprend 4 leçons au total.
L’asynchrone nécessite des tests particuliers
Les fonctions suspendues et les flux ne se terminent pas instantanément. Vous avez donc besoin d’outils qui attendent la fin du travail asynchrone avant d’effectuer les assertions. ⏳
Découvrez runTest
Entourez vos assertions asynchrones de runTest, fourni par la bibliothèque de tests des coroutines ; il fournit une portée et ignore automatiquement les délais virtuels.
@Test
fun loadsUser() = runTest {
val u = repo.load(1)
assertEquals("Sam", u.name)
}Ajoutez l’outil de test
Ajoutez kotlinx-coroutines-test à commonTest afin que runTest et ses fonctions associées soient disponibles sur chaque cible.
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.8.0")Attendre le résultat d’une fonction suspendue
Dans runTest, appelez simplement la fonction suspendue directement et effectuez une assertion sur la valeur qu’elle renvoie.
val total = calc.fetchTotal()
assertEquals(42, total)Le temps est ignoré gratuitement
runTest utilise le temps virtuel : un delay de plusieurs secondes est donc résolu immédiatement et vos tests restent rapides.
Tester un flux manuellement
Vous pouvez collecter un flux fini dans une liste avec toList et effectuer une assertion sur les valeurs émises.
val values = numbers().toList()
assertEquals(listOf(1, 2, 3), values)Pourquoi Turbine est utile
Pour les flux continus, la bibliothèque Turbine vous permet d’attendre les éléments un par un sans gérer manuellement la collecte.
Ajoutez Turbine
Ajoutez Turbine à commonTest ; il s’agit d’un petit outil multiplateforme conçu spécialement pour tester les flux.
implementation("app.cash.turbine:turbine:1.1.0")Attendre les éléments avec test
Turbine enveloppe un flux dans un bloc test où awaitItem renvoie chaque émission dans l’ordre.
flow.test {
assertEquals(1, awaitItem())
awaitComplete()
}Terminez proprement le flux
Terminez chaque bloc Turbine avec awaitComplete ou cancel, sinon le test échoue à cause d’événements non consommés.
Vérifier les mises à jour de StateFlow
Turbine est particulièrement utile avec StateFlow : attendez la valeur initiale, déclenchez une action, puis attendez l’état émis suivant.
Vérification rapide
Choisissez l’enveloppe de test asynchrone appropriée.
Récapitulatif
Utilisez runTest pour le code suspendu et le bloc test de Turbine pour attendre les émissions des flux, le tout depuis commonTest.
Apprends Kotlin avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 30
- Leçons
- 120
Questions Fréquemment Posées
La leçon « Tester les fonctions suspendues et les flux » est-elle gratuite ?
Oui — le texte complet de « Tester les fonctions suspendues et les flux » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Kotlin Multiplatform Academy, passe à CoddyKit PRO. Le cours Kotlin Multiplatform Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Tester les fonctions suspendues et les flux » ?
Utilisez runTest et Turbine pour vérifier le comportement asynchrone. Tu pratiques Kotlin Multiplatform Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Kotlin Multiplatform Academy ?
Aucune expérience préalable n'est requise. Kotlin Multiplatform Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Tester les fonctions suspendues et les flux » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Kotlin Multiplatform Academy ?
Oui. Chaque leçon Kotlin Multiplatform Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- kotlin.test dans commonTest
- Tester les fonctions suspendues et les flux
- Simuler le client Ktor et les référentiels
- Exécuter les tests sur les cibles Android et iOS