Treci la conținutul principal

Ce este un test unitar

Un test unitar este un program mic care verifică o singură bucată din codul tău — de obicei o singură funcție. Rulezi testele după fiecare modificare; dacă o modificare strică ceva, un test îți spune imediat, înainte să afle utilizatorii tăi.

Nu ai nevoie de o bibliotecă suplimentară. Node.js vine cu un rulator de teste încorporat: modulul node:test înregistrează testele, modulul node:assert/strict verifică valorile, iar opțiunea --test le rulează.

Testele fac și schimbările sigure: cu teste bune poți rescrie o funcție și afli în câteva secunde dacă se comportă la fel.


Fișiere de test și cazuri de test

Două lucruri fac dintr-un test un test:

1. Numele fișierului se termină în .test.ts — pentru add.ts scrii add.test.ts. Rulatorul de teste caută fișiere denumite astfel și le rulează doar pe acestea.
2. Testul este înregistrat printr-un apel: test("name", fn), importat din node:test. Numele este text liber, deci poate fi o propoziție întreagă — nu există niciun prefix de denumire de reținut.

În interiorul testului apelezi funcția, compari ce ai obținut cu ce vrei și lași assert să raporteze diferența. O aserțiune nereușită aruncă o eroare, iar rulatorul marchează testul ca eșuat. Dacă nu se aruncă nimic, testul trece.

Un prim test care trece

add(2, 3) este comparat cu 5. Valorile coincid, deci assert.equal rămâne tăcut și testul trece. Rulatorul afișează o linie ✔ pentru test și pass 1 în rezumatul de dedesubt.

Prompt
Scrie un fișier de test TypeScript cu o funcție add care adună două numere și un test înregistrat cu test() din node:test, care verifică dacă add(2, 3) este egal cu 5 folosind assert.equal cu un mesaj de tip got/want. Arată rezultatul rulării lui cu rulatorul de teste încorporat și cu raportorul spec.
Ieșire: program TypeScript și rezultatul capturat
A first passing test

Un test care eșuează

Acest add are o eroare — înmulțește. Testul o prinde: rularea afișează o linie ✖ și fail 1, apoi un raport cu mesajul nostru add(2, 3) = 6; se aștepta 5 și cele două valori, 6 !== 5.

Prompt
Scrie un fișier de test TypeScript în care funcția add are o eroare (înmulțește în loc să adune), iar testul se așteaptă în continuare ca add(2, 3) să fie 5. Arată rezultatul real al eșecului produs de rulatorul de teste încorporat, inclusiv raportul aserțiunii.
Ieșire: program TypeScript și rezultatul capturat

Rularea testelor

node --test rulează testele. Dacă îi dai un nume de fișier, rulează acel fișier; dacă nu îi dai nimic, caută în folder fișierele care arată ca teste și le rulează pe toate.

Raportorul decide cât de mult vezi. --test-reporter=spec listează fiecare test după nume, cu un ✔ sau un ✖ în față, iar aceasta este forma folosită în tot acest tutorial. Liniile de rezumat de dedesubt încep cu ℹ și numără câte teste au rulat, au trecut și au eșuat.

Două teste, ambele listate după nume

Fișierul are două funcții mici și câte un test pentru fiecare. Raportorul le arată pe ambele după nume, așa că poți vedea că ambele au rulat și ambele au trecut — rezumatul spune tests 2 și pass 2.

Prompt
Scrie un fișier de test TypeScript cu două funcții mici, double și half, și câte un test pentru fiecare. Arată rezultatul raportorului spec, în care ambele teste apar după nume și trec.
Ieșire: program TypeScript și rezultatul capturat