Zig Academy · Lektion

Påstande med std.testing

expect, expectEqual og vennerne.

Lektion 2 af 413 trin

Påstande med std.testing er en gratis Zig Academy-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Zig Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Zig Academy-kurset indeholder 4 lektioner i alt.

Navnerummet testing

Zigs hjælpefunktioner til kontrol ligger i std.testing. Giv det et kort navn, så hver kontrol står tydeligt i dine testblokke.

const testing = std.testing;

expect til boolske værdier

Den enkleste hjælpefunktion er expect. Den tager én boolsk værdi og får testen til at mislykkes, når betingelsen er falsk.

try testing.expect(value > 0);

Hjælpefunktioner returnerer fejl

Alle hjælpefunktioner til test returnerer en fejl ved mislykket kontrol, så du sætter altid try foran dem. Det får testen til at stoppe og rapportere fejlen.

expectEqual til værdier

Brug expectEqual, når du vil sammenligne to værdier. Den kontrollerer lighed og udskriver både den forventede og den faktiske værdi, hvis kontrollen mislykkes.

try testing.expectEqual(5, add(2, 3));

Den forventede værdi kommer først

Med expectEqual er det første argument den forventede værdi, og det andet er det, din kode frembragte. Rækkefølgen bestemmer fejlmeddelelsen.

try testing.expectEqual(42, result);

Sammenlign slices

To slices er ens, når deres elementer matcher, ikke når deres pointere matcher. Brug expectEqualSlices, og angiv elementtypen.

try testing.expectEqualSlices(u8, "hi", out);

Sammenlign strenge

Til tekst sammenligner expectEqualStrings to byteslices og udskriver en letlæselig forskel, når de ikke matcher. Det er perfekt til at kontrollere output.

try testing.expectEqualStrings("ok", msg);

Kontrollér en fejl

Nogle gange skal et kald mislykkes. Pak det ind i expectError for at kontrollere, at det returnerer en bestemt fejl og ikke en værdi.

try testing.expectError(error.Bad, parse("x"));

Tilnærmede flydende tal

Flydende tal matcher sjældent helt nøjagtigt. Brug expectApproxEqAbs med en lille tolerance, så små afrundingsforskelle ikke får testen til at mislykkes.

try testing.expectApproxEqAbs(1.0, x, 0.001);

Læs fejloutputtet

Når en kontrol mislykkes, udskriver Zig de forventede og faktiske værdier direkte i rapporten. Denne forskel peger normalt direkte på fejlen.

Vælg den rigtige hjælpefunktion

Tilpas hjælpefunktionen til dataene: expectEqual til enkeltværdier, slice- og strenghjælpefunktioner til sekvenser og expectError til fejlforløbet.

Hurtig kontrol

Du skal kontrollere, at to tekstværdier er nøjagtigt ens i en test. Hvilken hjælpefunktion passer bedst?

Opsummering

Du har lært værktøjssættet std.testing: expect, expectEqual, kontroller af slices og strenge samt expectError. De skal alle have try foran. ✅

Gratis at komme i gang

Lær Zig med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
30
Lektioner
120

Ofte stillede spørgsmål

Er lektionen “Påstande med std.testing” gratis?

Ja — hele teksten til “Påstande med std.testing” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Zig Academy-kurset, skal du opgradere til CoddyKit PRO. Zig Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Påstande med std.testing”?

expect, expectEqual og vennerne. Du øver dig i Zig Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Zig Academy?

Der kræves ingen tidligere erfaring. Zig Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.

Hvor lang tid tager lektionen “Påstande med std.testing”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Zig Academy-lektion?

Ja. Alle Zig Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Skriv test-blokke
  2. Påstande med std.testing
  3. Test-allokatoren finder leaks
  4. Kørsel og filtrering af tests
← Tilbage til Zig Academy