Async-code en streams testen
Futures awaiten en reeksen gebeurtenissen controleren
Async-code en streams testen is een gratis Dart Academy-les op CoddyKit. Dit is les 3 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Dart Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Dart Academy bevat in totaal 4 lessen.
Asynchrone code vraagt aandacht
Veel echte code retourneert een Future. Als een test vergeet te wachten, kan hij slagen voordat het werk klaar is. ⏳
Retourneer of gebruik await
De uitvoerder wacht wanneer je testbody async is en je het werk afwacht met await, of wanneer je de Future rechtstreeks retourneert.
test('loads user', () async {
final u = await fetchUser();
expect(u.name, 'Ada');
});expectLater voor Futures
Gebruik expectLater wanneer de gecontroleerde waarde zelf een Future is, bijvoorbeeld om te controleren of een Future met een bepaald resultaat wordt voltooid.
await expectLater(fetchValue(), completion(42));De matcher completion
De matcher completion slaagt wanneer een Future succesvol wordt voltooid en de waarde ervan overeenkomt met de binnenste matcher.
expectLater(load(), completion(isNotEmpty));Asynchrone fouten verwachten
Gebruik expectLater samen met throwsA om te controleren of een Future mislukt en de juiste fout wordt opgegooid.
await expectLater(
risky(), throwsA(isA<StateError>()));Streams leveren veel waarden
Een Stream verzendt in de loop van de tijd een reeks gebeurtenissen. Bij het testen controleer je die hele reeks, in de juiste volgorde.
De matcher emits
Gebruik emits om de volgende waarde te controleren die een stream produceert, en emitsInOrder voor een verwachte reeks.
await expectLater(
counter, emitsInOrder([1, 2, 3]));Geef het einde aan
De matcher emitsDone controleert of een stream op het verwachte moment wordt gesloten. Zo vind je streams die nooit eindigen.
expectLater(ticks, emitsThrough(emitsDone));Ook streams kunnen fouten bevatten
Combineer matchers met emitsError om een fout in een stream te verwachten en te controleren of fouten als gebeurtenissen aankomen.
emitsInOrder([1, emitsError(isException)]);Pas op voor schijnbare successen
Een veelgemaakte fout: als je await vergeet, eindigt de test te vroeg en passes silently. Wacht asynchroon werk altijd af of retourneer het.
Time-outs helpen je
Als asynchrone code blijft hangen, stopt de uitvoerder die. Je kunt de wachttijd voor een trage test aanpassen met een timeout.
test('slow', () async { /* ... */ },
timeout: Timeout(Duration(seconds: 5)));Snelle controle
Hoe controleer je of een stream 1, 2 en 3 in die volgorde uitzendt?
Samenvatting
Je hebt Futures afgewacht, expectLater gebruikt met completion en throwsA, en streams gecontroleerd met emits-matchers. Asynchrone code, vol vertrouwen getest. 🌊
Leer Dart met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 30
- Lessen
- 120
Veelgestelde vragen
Is de les “Async-code en streams testen” gratis?
Ja — de volledige tekst van “Async-code en streams testen” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Dart Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Dart Academy bevat in totaal 4 lessen.
Wat leer ik in “Async-code en streams testen”?
Futures awaiten en reeksen gebeurtenissen controleren Je oefent met Dart Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Dart Academy te beginnen?
Ervaring vooraf is niet nodig. Dart Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “Async-code en streams testen”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Dart Academy?
Ja. Elke les over Dart Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Uw eerste test en expect
- group, setUp en tearDown
- Async-code en streams testen
- Mocks, fakes en coverage