Asserzioni con std.testing
Usare expect, expectEqual e funzioni simili
Asserzioni con std.testing è una lezione Zig Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Zig Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Zig Academy include 4 lezioni in totale.
Il namespace testing
Le funzioni di asserzione di Zig si trovano in std.testing. Lo importi con un nome breve, così ogni verifica nei blocchi di test risulterà più leggibile.
const testing = std.testing;expect per i valori booleani
La funzione di supporto più semplice è expect. Accetta un booleano e fa fallire il test quando la condizione è falsa.
try testing.expect(value > 0);Le funzioni di supporto restituiscono errori
Ogni funzione di supporto per i test restituisce un errore in caso di fallimento, quindi deve sempre anteporre try. È questo che interrompe il test e segnala il problema.
expectEqual per i valori
Per confrontare due valori, usi expectEqual. Verifica l'uguaglianza e, in caso di errore, stampa sia il valore previsto sia quello effettivo.
try testing.expectEqual(5, add(2, 3));Prima viene il valore previsto
Con expectEqual il primo argomento è il valore previsto e il secondo è ciò che ha prodotto il codice. L'ordine determina il contenuto del messaggio di errore.
try testing.expectEqual(42, result);Confrontare le slice
Due slice sono uguali quando coincidono i loro elementi, non i loro puntatori. Usi expectEqualSlices e specifichi il tipo degli elementi.
try testing.expectEqualSlices(u8, "hi", out);Confrontare le stringhe
Per il testo, expectEqualStrings confronta due slice di byte e stampa una differenza leggibile quando divergono: è perfetto per verificare l'output.
try testing.expectEqualStrings("ok", msg);Asserire un errore
A volte una chiamata dovrebbe fallire. La racchiuda in expectError per verificare che restituisca un errore specifico e non un valore.
try testing.expectError(error.Bad, parse("x"));Float approssimativi
I numeri in virgola mobile raramente coincidono esattamente. Usi expectApproxEqAbs con una piccola tolleranza, così minime differenze di arrotondamento non faranno fallire il test.
try testing.expectApproxEqAbs(1.0, x, 0.001);Leggere l'output del fallimento
Quando un'asserzione fallisce, Zig stampa nel report i valori previsto ed effettivo. Questa differenza indica spesso direttamente il punto del bug.
Scegliere la funzione di supporto giusta
Abbini la funzione di supporto ai dati: expectEqual per gli scalari, le funzioni per slice e stringhe per le sequenze, expectError per il percorso di errore.
Verifica rapida
Deve verificare in un test che due valori testuali siano esattamente uguali. Quale funzione di supporto è più adatta?
Riepilogo
Ha imparato a usare gli strumenti di std.testing: expect, expectEqual, le verifiche per slice e stringhe e expectError. Ognuno richiede try all'inizio. ✅
Domande Frequenti
La lezione «Asserzioni con std.testing» è gratuita?
Sì — il testo completo di «Asserzioni con std.testing» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Zig Academy, passa a CoddyKit PRO. Il corso Zig Academy include 4 lezioni in totale.
Cosa imparerò in «Asserzioni con std.testing»?
Usare expect, expectEqual e funzioni simili Eserciti Zig Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Zig Academy?
Non è richiesta alcuna esperienza precedente. Zig Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Asserzioni con std.testing»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Zig Academy?
Sì. Ogni lezione Zig Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Scrivere blocchi test
- Asserzioni con std.testing
- Il Testing Allocator rileva le perdite
- Eseguire e filtrare i test