Cum se scrie testul unitar în Golang?

Cum Se Scrie Testul Unitar In Golang



Dacă sunteți dezvoltator Go, știți cât de importantă este testarea pentru asigurarea calității codului dvs. Scris teste unitare este o parte esențială a procesului de dezvoltare și vă poate ajuta să detectați erori de la început, economisind timp și bani pe termen lung. În acest articol, vom discuta despre cum să scrieți teste unitare în Golang.

Ce este testarea unitară?

Primul pas este să înțelegi ce testarea unitară mijloace. Testarea unitară se referă la procesul de testare a unităților sau modulelor mici de cod pentru a se asigura că fiecare dintre ele funcționează conform așteptărilor. Testarea unitară este folosit pentru a elimina problemele din cod, pentru a îmbunătăți stabilitatea codului și pentru a asigura corectitudinea la actualizarea codului. Etapa inițială a testării software-ului este test unitar , care este urmat de testul UI și testul de integrare.

Pachetul de testare

în Golang, testarea unitară se realizează folosind un pachet numit testarea . Pachetul oferă diverse funcții care ne permit să ne testăm codul. Codul Go poate fi testat automat cu ajutorul pachetului de testare.







Exemplu de program de testat

Avem nevoie de niște coduri pe care să le analizăm testele înainte de a putea scrie teste unitare . Vom crea un mic program care adaugă două numere.



pachet principal

import (
'fmt'
)
funcAdd ( A int , b int ) int {
întoarcere A + b
}

func principal ( ) {
fmt. Println ( Adăuga ( 2 , 3 ) )
}

Codul de mai sus definește Adăuga() funcția, care adună două numere, A și b , ca intrări și ieșiri rezultatul ca număr întreg. Adăugarea numerelor 2 și 3 este tot ceea ce face funcția principală înainte de a imprima rezultatul.







Convenția de scriere a testelor de unitate în Go

Fiecare proiect Go ar trebui să aibă un fișier de testare separat care conține toate testele pentru acel proiect. Fișierul ar trebui să aibă același nume ca și fișierul testat și ar trebui să aibă _test.go adăugat la sfârșitul numelui fișierului. De exemplu, dacă vrem să testăm un fișier numit calculator.go , ar trebui să denumim fișierul nostru de testare calculator_test.go .

Este o practică standard pentru Du-te la testarea fișierelor să fie localizate în același pachet sau director cu codul pe care îl evaluează. Când utilizați comanda go build, compilatorul nu creează aceste fișiere, așa că nu trebuie să vă îngrijorați de apariția lor în implementări.



A scrie a test unitar în Go, trebuie să folosim testarea pachet. Putem începe fiecare funcție de testare cu cuvântul Test și apoi adăugați o descriere a ceea ce vrem să testăm. De exemplu, TestAddition sau TestScădere . Apoi putem scrie codul de testare care verifică dacă funcția pe care o testăm returnează rezultatele așteptate.

În Go, fiecare funcție de testare ar trebui să înceapă cu instrucțiunea t := testare.T{}. Această afirmație creează o nouă testarea obiect pe care îl putem folosi pentru a verifica dacă testul a trecut sau nu a reușit. Apoi putem folosi t.Eroare() funcția pentru a imprima un mesaj de eroare dacă testul eșuează.

Cum se scrie codul de testare?

Când vine vorba de scrierea testelor unitare în Go, este important să începeți prin a specifica pachetul pe care doriți să îl testați. După importarea pachetului de testare, puteți accesa diferite tipuri și metode pe care pachetul le exportă, inclusiv testare.T tip. Logica de testare în sine este apoi scrisă într-o funcție care începe cu cuvântul cheie 'Test' urmat de un nume descriptiv, cum ar fi TestAdd() . În această funcție, puteți include codul pentru test și orice afirmații necesare pentru a verifica comportamentul așteptat.

Pentru a rezuma, caracteristicile unui test în Go sunt următoarele:

  • Singurul și singurul parametru necesar este t *testare.T
  • Funcția de testare începe cu cuvântul Test și este apoi urmată de un cuvânt sau o expresie care începe cu o literă mare.
  • Pentru a indica un eșec, funcția de testare ar trebui să apeleze fie t.Eroare sau t.Eșuează, și pentru a furniza informații suplimentare de depanare fără a provoca o eroare, poate fi folosit t.Log.
  • Pentru a furniza informații de depanare fără eșec, utilizați t.Log.
  • Testele sunt stocate în fișiere cu numele foo_test.go , de exemplu, math_test.go .

Închideți fișierul după ce l-ați salvat.

pachet principal

import (
'testare'
)

funcTestAdd ( t * testarea. T ) {
rezultat := Adăuga ( 2 , 3 )
dacă rezultat != 5 {
t. Errorf ( „Adăugați (2, 3) = %d; vreau 5” , rezultat )
}
}

The Adăuga() funcția este testată de TestAdd() funcţie, care este definită în acest test. Folosește numerele 2 și 3 pentru a apela Add, apoi confirmă că rezultatul este 5. Este tipărit un mesaj de eroare dacă rezultatul este mai mic de 5 când t.Eroare() este invocat.

În cele din urmă, este important să știți că Go are un instrument de testare încorporat numit du-te la testare. Acest instrument rulează toate testele din proiect și oferă un raport al rezultatelor. Du-te la testare trebuie introdus în terminal în timp ce în directorul proiectului pentru a începe testele. Toate testele din acel director vor rula ca rezultat.

< puternic > du-te la testare < Test - fişier - Nume > _Test. merge puternic >

Rezultatele testului unitar

Ieșirea vă va afișa funcțiile de testare care au trecut, au eșuat sau au omis.

PASS sau OK indică faptul că codul funcționează conform intenției. Vei primi FAIL dacă un test eșuează.

The _test.go sufixul este singurul pe care subcomanda go test îl verifică în fișiere. După aceea, testează căutează acele fișiere pentru orice funcții speciale, cum ar fi func TestXxx și alții câțiva. Go test construiește și apelează corect aceste funcții, le execută, adună și raportează rezultatele și, în cele din urmă, curăță totul într-un pachet principal temporar.

Ultimul pas este să vă integrați testele în fluxul de lucru de dezvoltare. Cea mai bună practică este să rulați testele de fiecare dată când trimiteți codul într-un depozit. Integrarea testelor dvs. în fluxul dvs. de lucru de dezvoltare asigură că codul dvs. este testat continuu și că orice probleme sunt rezolvate înainte de implementare.

Concluzie

Scris teste unitare este o componentă crucială a dezvoltării software, deoarece garantează că codul dumneavoastră este scalabil, funcțional și eficient. Biblioteca de testare Go este fără efort și ușor de utilizat. Ar trebui să poți crea Golang teste unitare de cea mai înaltă calitate urmând procedurile enumerate mai sus. Nu uitați să vă integrați testele în fluxul de lucru de dezvoltare pentru a vă asigura că codul este testat continuu și că orice problemă este rezolvată înainte de implementare.