Kuidas kirjutada ühikutesti Golangis?

Kuidas Kirjutada Uhikutesti Golangis



Kui olete Go arendaja, teate, kui oluline on testimine teie koodi kvaliteedi tagamiseks. Kirjutamine ühikutestid on arendusprotsessi oluline osa ja see võib aidata teil varakult vead tabada, säästes teie aega ja raha pikas perspektiivis. Selles artiklis arutame, kuidas kirjutada ühikutestid Golangis.

Mis on ühikutestimine?

Esimene samm on aru saada, millest ühiku testimine tähendab. Ühiku testimine viitab väikeste koodiüksuste või moodulite testimise protsessile, et tagada nende kõigi ootuspärane toimimine. Ühiku testimine kasutatakse koodist probleemide eemaldamiseks, koodi stabiilsuse parandamiseks ja korrektsuse tagamiseks koodi värskendamisel. Tarkvara testimise esialgne etapp on ühiku test , millele järgneb kasutajaliidese test ja integratsioonitest.

Testimispakett

Golangis, ühiku testimine teostatakse kasutades paketti nimega testimine . Pakett sisaldab erinevaid funktsioone, mis võimaldavad meil oma koodi testida. Go koodi saab testimispaketi abil automaatselt testida.







Testimise näidisprogramm

Enne selle kirjutamist vajame oma testide analüüsimiseks koodi ühikutestid . Koostame väikese programmi, mis lisab kaks numbrit.



pakett peamine

importida (
'fmt'
)
funcAdd ( a int , b int ) int {
tagasi a + b
}

func main ( ) {
fmt. Println ( Lisama ( 2 , 3 ) )
}

Ülaltoodud kood määratleb Lisama() funktsioon, mis lisab kaks numbrit, a ja b , sisenditena ja väljastab tulemuse täisarvuna. Numbrite 2 ja 3 lisamine on kõik, mida põhifunktsioon teeb enne tulemuse printimist.







Kirjutamisühikutestide konventsioon liikvel olles

Igal Go projektil peaks olema eraldi testfail, mis sisaldab kõiki selle projekti teste. Failil peab olema sama nimi kui testitaval failil ja see peaks olema _test.go lisatakse failinime lõppu. Näiteks kui tahame testida faili nimega kalkulaator.go , peaksime oma testfailile nime panema kalkulaator_test.go .

See on tavapärane tava Mine faile testima asuma samas paketis või kataloogis kui kood, mida nad hindavad. Kui kasutate käsku go build, ei loo kompilaator neid faile, seega ei pea te muretsema nende ilmumise pärast juurutamisel.



Et kirjutada a ühiku test Go, peame kasutama testimine pakett. Iga testfunktsiooni saame alustada sõnaga Test ja seejärel lisage kirjeldus, mida tahame testida. Näiteks, TestLisa või Katselahutamine . Seejärel saame kirjutada testkoodi, mis kontrollib, kas testitav funktsioon tagastab oodatud tulemused.

Go-s peaks iga testfunktsioon algama lausega t := testimine.T{}. See väide loob uue testimine objekt, mille abil saame kontrollida, kas test on läbitud või ebaõnnestunud. Seejärel saame kasutada t.Errorf() funktsioon veateate printimiseks, kui test ebaõnnestub.

Kuidas testimiskoodi kirjutada?

Mis puutub Go-s ühiktestide kirjutamisse, on oluline alustada testitava paketi määramisest. Pärast testimispaketi importimist pääsete juurde erinevatele tüüpidele ja meetoditele, mida pakett ekspordib, sealhulgas katsetamine.T tüüp. Seejärel kirjutatakse testimisloogika ise funktsiooni, mis algab märksõnaga 'Testi' millele järgneb kirjeldav nimi, näiteks TestAdd() . Selle funktsiooni sees saate lisada testi koodi ja kõik väited, mis on vajalikud eeldatava käitumise kontrollimiseks.

Kokkuvõttes on Go testi omadused järgmised:

  • Üks ja ainus nõutav parameeter on t *testimine.T
  • Testimisfunktsioon algab sõnaga Test ja sellele järgneb sõna või fraas, mis algab suure tähega.
  • Rikke märkimiseks peaks testimisfunktsioon helistama kas t.Errorf või t.Ebaõnnestus, ja täiendava silumisinformatsiooni andmiseks ilma tõrget põhjustamata saab kasutada t.Logi.
  • Tõrgeteta silumisteabe edastamiseks kasutage t.Log.
  • Testid salvestatakse failidesse nimega foo_test.go , näiteks, math_test.go .

Sulgege fail pärast selle salvestamist.

pakett peamine

importida (
'testimine'
)

funcTestAdd ( t * testimine. T ) {
tulemus := Lisama ( 2 , 3 )
kui tulemus != 5 {
t. Errf ( 'Lisa(2, 3) = %d; tahan 5' , tulemus )
}
}

The Lisama() funktsiooni testib TestAdd() funktsioon, mis on selles testis määratletud. See kasutab numbreid 2 ja 3, et helistada Add ja seejärel kinnitab, et tulemus on 5. Kui tulemus on väiksem kui 5, prinditakse veateade. t.Errorf() kutsutakse esile.

Lõpuks on oluline teada, et Go-l on sisseehitatud testimistööriist nimega mine testima. See tööriist käivitab kõik projekti testid ja esitab tulemuste aruande. Mine testima testide alustamiseks tuleb tippida terminali, kui olete projektikataloogis. Selle tulemusel käitatakse kõik selles kataloogis olevad testid.

< tugev > mine testima < test - faili - nimi > _test. mine tugev >

Ühikutesti tulemused

Väljund näitab testimisfunktsioone, mis läbisid, ebaõnnestusid või jäeti vahele.

PASS või OK tähistab, et kood töötab ettenähtud viisil. Sa saad EBAÕNNESTUS kui test ebaõnnestub.

The _test.go järelliide on ainus, mida alamkäsk go test kontrollib failides. Seejärel testige neid faile, et leida erifunktsioone (nt func). TestXxx ja mitmed teised. Go test koostab ja kutsub neid funktsioone õigesti, käivitab need, kogub ja annab tulemuste kohta aru ning lõpuks puhastab kõik ajutises põhipaketis.

Viimane samm on integreerida oma testid oma arendustöövoogu. Parim tava on käivitada testid iga kord, kui sisestate oma koodi hoidlasse. Testide integreerimine arendustöövoogu tagab, et teie koodi testitakse pidevalt ja kõik probleemid lahendatakse enne juurutamist.

Järeldus

Kirjutamine ühikutestid on tarkvaraarenduse oluline komponent, kuna see tagab, et teie kood on skaleeritav, funktsionaalne ja tõhus. Go testimise teeki on lihtne ja lihtne kasutada. Peaksite saama Golangi luua ühikutestid kõrgeima kvaliteediga, järgides ülaltoodud protseduure. Ärge unustage integreerida testid oma arendustöövoogu, et tagada teie koodi pidev testimine ja kõik probleemid lahendatakse enne juurutamist.