Kotlin Multiplatform Academy · Leçon

Tester les fonctions suspendues et les flux

Utilisez runTest et Turbine pour vérifier le comportement asynchrone.

Leçon 2 sur 413 étapes

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.

Gratuit pour commencer

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

  1. kotlin.test dans commonTest
  2. Tester les fonctions suspendues et les flux
  3. Simuler le client Ktor et les référentiels
  4. Exécuter les tests sur les cibles Android et iOS
← Retour à Kotlin Multiplatform Academy