Kako napisati test enote v Golangu?

Kako Napisati Test Enote V Golangu



Če ste razvijalec Go, veste, kako pomembno je testiranje za zagotavljanje kakovosti vaše kode. Pisanje enotni testi je bistven del razvojnega procesa in vam lahko pomaga zgodaj odkriti hrošče ter vam dolgoročno prihrani čas in denar. V tem članku bomo razpravljali o tem, kako pisati enotni testi v Golangu.

Kaj je testiranje enot?

Prvi korak je razumeti, kaj testiranje enote pomeni. Testiranje enot se nanaša na postopek testiranja majhnih kodnih enot ali modulov, da se zagotovi, da vsak od njih deluje po pričakovanjih. Testiranje enot se uporablja za odstranjevanje težav iz kode, izboljšanje stabilnosti kode in zagotavljanje pravilnosti pri posodabljanju kode. Začetna faza testiranja programske opreme je test enote , ki mu sledita test uporabniškega vmesnika in test integracije.

Testni paket

v Golangu, testiranje enote se izvaja s pomočjo paketa, imenovanega testiranje . Paket ponuja različne funkcije, ki nam omogočajo testiranje kode. Kodo Go je mogoče samodejno testirati s pomočjo testnega paketa.







Primer programa za testiranje

Potrebujemo nekaj kode za analizo naših testov, preden jo lahko napišemo enotni testi . Ustvarili bomo majhen program, ki sešteva dve števili.



glavni paket

uvoz (
'fmt'
)
funcAdd ( a int , b int ) int {
vrnitev a + b
}

glavna funkcija ( ) {
fmt. Println ( Dodaj ( 2 , 3 ) )
}

Zgornja koda definira Dodaj() funkcijo, ki sešteje dve števili, a in b , kot vhod in izhod rezultat kot celo število. Seštevanje števil 2 in 3 je vse, kar naredi glavna funkcija, preden natisne izid.







Konvencija o pisanju testov enot na poti

Vsak projekt Go mora imeti ločeno testno datoteko, ki vsebuje vse teste za ta projekt. Datoteka bi morala imeti enako ime kot datoteka, ki se preskuša, in bi morala imeti _test.go dodan na konec imena datoteke. Na primer, če želimo preizkusiti datoteko z imenom kalkulator.go , bi morali poimenovati našo testno datoteko calculator_test.go .

To je standardna praksa za Pojdite na testiranje datotek da se nahajajo v istem paketu ali imeniku kot koda, ki jo ocenjujejo. Ko uporabite ukaz go build, prevajalnik ne ustvari teh datotek, zato vam ni treba skrbeti, ali se bodo prikazale v uvedbah.



Napisati a test enote v Go moramo uporabiti testiranje paket. Vsako testno funkcijo lahko začnemo z besedo Test in nato dodamo opis tega, kar želimo preizkusiti. na primer TestAddition oz TestSubtraction . Nato lahko napišemo testno kodo, ki preverja, ali funkcija, ki jo testiramo, vrne pričakovane rezultate.

V Go se mora vsaka preskusna funkcija začeti s stavkom t := testiranje.T{}. Ta izjava ustvarja novo testiranje predmet, s katerim lahko preverimo, ali je test uspel ali ne. Nato lahko uporabimo t.Errorf() funkcijo za tiskanje sporočila o napaki, če test ne uspe.

Kako napisati kodo za testiranje?

Ko gre za pisanje testov enot v Go, je pomembno, da začnete z določitvijo paketa, ki ga želite preizkusiti. Po uvozu testnega paketa lahko dostopate do različnih vrst in metod, ki jih paket izvozi, vključno z testiranje.T vrsta. Sama logika testiranja je nato zapisana v funkciji, ki se začne s ključno besedo 'Test' ki mu sledi opisno ime, kot npr TestAdd() . Znotraj te funkcije lahko vključite kodo za preizkus in vse trditve, potrebne za preverjanje pričakovanega vedenja.

Če povzamemo, značilnosti testa v Go so naslednje:

  • Edini in edini zahtevani parameter je t *testiranje.T
  • Funkcija testiranja se začne z besedo Test, nato pa ji sledi beseda ali fraza, ki se začne z veliko začetnico.
  • Za označevanje napake mora poklicati preskusna funkcija t.Errorf oz neuspeh, in za zagotavljanje dodatnih informacij o odpravljanju napak, ne da bi povzročili napako, lahko uporabite t.Log.
  • Za zagotavljanje informacij o odpravljanju napak, uporabite t.Log.
  • Testi so shranjeni v datotekah z imenom foo_test.go , na primer, math_test.go .

Zaprite datoteko, ko jo shranite.

glavni paket

uvoz (
'testiranje'
)

funcTestAdd ( t * testiranje. T ) {
rezultat := Dodaj ( 2 , 3 )
če rezultat != 5 {
t. Errorf ( 'Dodaj (2, 3) = %d; želim 5' , rezultat )
}
}

The Dodaj() funkcijo testira TestAdd() funkcijo, ki je definirana v tem testu. Uporabi številki 2 in 3 za klic Dodaj, nato pa potrdi, da je rezultat 5. Če je rezultat manjši od 5, se natisne sporočilo o napaki. t.Errorf() se prikliče.

Na koncu je pomembno vedeti, da ima Go vgrajeno orodje za testiranje, imenovano pojdi testirat. To orodje izvaja vse teste v projektu in zagotavlja poročilo o rezultatih. Pojdi na test morate vnesti v terminal, ko ste v imeniku projekta, da začnete s preizkusi. Kot rezultat se bodo izvajali vsi testi v tem imeniku.

< močan > pojdi testirat < test - mapa - ime > _test. pojdi močan >

Rezultati testa enote

Izhod vam bo pokazal testne funkcije, ki so bile uspešne, neuspešne ali preskočene.

PASS ali OK pomeni, da koda deluje, kot je predvideno. Prejel boš NEUSPEŠNO če test ne uspe.

The _test.go pripona je edina, ki jo podukaz go test preveri v datotekah. Nato go test poišče te datoteke za morebitne posebne funkcije, kot je func TestXxx in več drugih. Go test pravilno gradi in kliče te funkcije, jih izvaja, zbira in poroča o rezultatih ter končno počisti vse v začasnem glavnem paketu.

Zadnji korak je integracija vaših testov v razvojni tok dela. Najboljša praksa je, da zaženete preizkuse vsakič, ko svojo kodo objavite v repozitoriju. Integracija vaših testov v vaš delovni tok razvoja zagotavlja, da se vaša koda nenehno testira in da se vse težave odpravijo pred uvedbo.

Zaključek

Pisanje enotni testi je ključna komponenta razvoja programske opreme, saj zagotavlja, da je vaša koda razširljiva, funkcionalna in učinkovita. Knjižnica za testiranje Go je enostavna in enostavna za uporabo. Morali bi biti sposobni ustvariti Golang enotni testi najvišje kakovosti z upoštevanjem zgoraj navedenih postopkov. Ne pozabite integrirati svojih preizkusov v razvojni tok dela, da zagotovite, da se vaša koda nenehno testira in da so vse težave odpravljene pred uvedbo.