Dart Academy · leksjon

Teste asynkron kode og strømmer

Vent på futures og bekreft hendelsesrekkefølger

Leksjon 3 av 413 trinn

Teste asynkron kode og strømmer er en gratis leksjon i Dart Academy på CoddyKit. Dette er leksjon 3 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Dart Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Dart Academy inneholder totalt 4 leksjoner.

Asynkron kode krever omtanke

Mye ekte kode returnerer en Future. Hvis en test glemmer å vente, kan den bestå før arbeidet i det hele tatt er ferdig. ⏳

Returner eller bruk await

Testrammeverket venter når testblokken din er async og du bruker await på arbeidet, eller når du returnerer Future direkte.

test('loads user', () async {
  final u = await fetchUser();
  expect(u.name, 'Ada');
});

expectLater for Futures

Bruk expectLater når verdien som skal matches, selv er en Future, for eksempel når du sjekker at en Future fullføres med et bestemt resultat.

await expectLater(fetchValue(), completion(42));

completion-matcheren

completion-matcheren består når en Future fullføres uten feil og verdien samsvarer med den indre matcheren.

expectLater(load(), completion(isNotEmpty));

Forvent asynkrone feil

Hvis du vil kontrollere at en Future mislykkes, kombinerer du expectLater med throwsA, slik at testen bekrefter at riktig feil blir kastet.

await expectLater(
  risky(), throwsA(isA<StateError>()));

Strømmer sender mange verdier

En Stream sender en sekvens av hendelser over tid. Å teste den innebærer å kontrollere hele sekvensen i riktig rekkefølge.

emits-matcheren

Bruk emits til å kontrollere den neste verdien en strøm produserer, og emitsInOrder for en forventet sekvens.

await expectLater(
  counter, emitsInOrder([1, 2, 3]));

Marker slutten

emitsDone-matcheren kontrollerer at en strøm lukkes som forventet, og avdekker strømmer som aldri blir ferdige.

expectLater(ticks, emitsThrough(emitsDone));

Strømmer kan også gi feil

Kombiner matchere med emitsError for å forvente en feil i en strøm, og bekrefte at feilene kommer som hendelser.

emitsInOrder([1, emitsError(isException)]);

Pass på falske beståtte tester

En vanlig feil er å glemme await. Da avsluttes testen for tidlig og passerer i stillhet. Bruk alltid await eller returner asynkront arbeid.

Tidsavbrudd hjelper deg

Hvis asynkron kode henger, stopper testrammeverket den. Du kan justere ventetiden med et timeout for en langsom test.

test('slow', () async { /* ... */ },
  timeout: Timeout(Duration(seconds: 5)));

Hurtigsjekk

Hvordan kontrollerer du at en strøm sender 1, 2 og 3 i riktig rekkefølge?

Oppsummering

Du brukte await på Futures, brukte expectLater med completion og throwsA, og kontrollerte strømmer med emits-matchere. Asynkron kode, testet med trygghet. 🌊

Gratis å komme i gang

Lær deg Dart med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
30
Leksjoner
120

Ofte stilte spørsmål

Er leksjonen «Teste asynkron kode og strømmer» gratis?

Ja – hele teksten i «Teste asynkron kode og strømmer» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Dart Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Dart Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Teste asynkron kode og strømmer»?

Vent på futures og bekreft hendelsesrekkefølger Du øver på Dart Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Dart Academy?

Ingen tidligere erfaring er nødvendig. Dart Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.

Hvor lang tid tar leksjonen «Teste asynkron kode og strømmer»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Dart Academy-leksjonen?

Ja. Alle Dart Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Din første test og expect
  2. group, setUp og tearDown
  3. Teste asynkron kode og strømmer
  4. Mocks, fakes og testdekning
← Tilbake til Dart Academy