Kaip parašyti vieneto testą Golange?

Kaip Parasyti Vieneto Testa Golange



Jei esate „Go“ kūrėjas, žinote, koks svarbus testavimas siekiant užtikrinti kodo kokybę. Rašymas vienetiniai testai yra esminė kūrimo proceso dalis ir gali padėti anksti pastebėti klaidas, ilgainiui sutaupant laiko ir pinigų. Šiame straipsnyje aptarsime, kaip rašyti vienetiniai testai Golange.

Kas yra vieneto testavimas?

Pirmas žingsnis – suprasti, ką vieneto bandymas reiškia. Vieneto bandymas reiškia mažų kodo vienetų arba modulių testavimo procesą, siekiant užtikrinti, kad kiekvienas iš jų veiktų taip, kaip tikėtasi. Vieneto bandymas naudojamas kodo problemoms pašalinti, kodo stabilumui pagerinti ir kodo atnaujinimo teisingumui užtikrinti. Pradinis programinės įrangos testavimo etapas yra vieneto testas , po kurio seka vartotojo sąsajos testas ir integravimo testas.

Testavimo paketas

Golange, vieneto bandymas atliekama naudojant paketą, vadinamą testavimas . Paketas suteikia įvairių funkcijų, kurios leidžia mums išbandyti savo kodą. Go kodas gali būti automatiškai patikrintas naudojant testavimo paketą.







Bandymo programos pavyzdys

Mums reikia tam tikro kodo, kad galėtume analizuoti mūsų testus, kad galėtume jį parašyti vienetiniai testai . Sukursime nedidelę programą, kuri pridės du skaičius.



pagrindinis paketas

importuoti (
'fmt'
)
funcAdd ( a tarpt , b tarpt ) tarpt {
grąžinti a + b
}

pagrindinė funkcija ( ) {
fmt. Println ( Papildyti ( 2 , 3 ) )
}

Aukščiau pateiktas kodas apibrėžia Papildyti() funkcija, kuri prideda du skaičius, a ir b , kaip įvesties ir išvesties rezultatas kaip sveikasis skaičius. Skaičių 2 ir 3 pridėjimas yra viskas, ką pagrindinė funkcija atlieka prieš spausdindama rezultatą.







Rašymo vienetų testų konvencija kelyje

Kiekvienas Go projektas turi turėti atskirą bandomąjį failą, kuriame būtų visi to projekto testai. Failas turi turėti tokį patį pavadinimą kaip ir bandomasis failas _test.go pridėta prie failo pavadinimo pabaigos. Pavyzdžiui, jei norime išbandyti failą pavadinimu skaičiuotuvas.go , turėtume pavadinti savo bandomąjį failą calculator_test.go .

Tai standartinė praktika Išbandykite failus būti tame pačiame pakete arba kataloge kaip ir jų vertinamas kodas. Kai naudojate komandą „go build“, kompiliatorius nesukuria šių failų, todėl jums nereikia jaudintis dėl jų pasirodymo diegimo metu.



Norėdami parašyti a vieneto testas Go, turime naudoti testavimas paketą. Kiekvieną bandymo funkciją galime pradėti žodžiu Testas ir tada pridėkite aprašą, ką norime išbandyti. Pavyzdžiui, TestPapildymas arba Bandomasis atimtis . Tada galime parašyti testo kodą, kuris patikrina, ar mūsų testuojama funkcija grąžina laukiamus rezultatus.

Programoje Go kiekviena testavimo funkcija turėtų prasidėti teiginiu t := testavimas.T{}. Šis teiginys sukuria naują testavimas objektas, kurį galime naudoti norėdami patikrinti, ar testas buvo išlaikytas, ar nepavyko. Tada galime naudoti t.Errorf() funkcija išspausdinti klaidos pranešimą, jei bandymas nepavyksta.

Kaip parašyti testavimo kodą?

Kai kalbama apie vienetų testų rašymą programoje „Go“, svarbu pirmiausia nurodyti paketą, kurį norite išbandyti. Importavę testavimo paketą galite pasiekti įvairius paketo eksportuojamus tipus ir metodus, įskaitant testavimas.T tipo. Tada pati testavimo logika įrašoma į funkciją, kuri prasideda raktiniu žodžiu 'Bandymas' po kurio nurodomas aprašomasis pavadinimas, pvz TestAdd() . Šioje funkcijoje galite įtraukti testo kodą ir bet kokius tvirtinimus, reikalingus laukiamam elgesiui patikrinti.

Apibendrinant galima pasakyti, kad bandymo Go ypatybės yra tokios:

  • Vienintelis ir vienintelis reikalingas parametras yra t *bandymas.T
  • Testavimo funkcija prasideda žodžiu Test, o po to seka žodis arba frazė, prasidedanti didžiąja raide.
  • Norėdama nurodyti gedimą, testavimo funkcija turėtų iškviesti bet kurį t.Klaida arba t. Nepavyko, ir norint pateikti papildomos derinimo informacijos nesukeliant gedimo, galima naudoti t.Log.
  • Norėdami pateikti patikimą derinimo informaciją, naudokite t.Log.
  • Testai saugomi failuose su pavadinimu foo_test.go , pavyzdžiui, math_test.go .

Išsaugoję failą uždarykite.

pagrindinis paketas

importuoti (
'bandymas'
)

funcTestAdd ( t * testavimas. T ) {
rezultatas := Papildyti ( 2 , 3 )
jeigu rezultatas != 5 {
t. Klaida ( 'Pridėti(2, 3) = %d; nori 5' , rezultatas )
}
}

The Papildyti() funkciją išbando TestAdd() funkcija, kuri apibrėžta šiame teste. Jis naudoja skaičius 2 ir 3, kad skambintų Add, o tada patvirtina, kad rezultatas yra 5. Jei rezultatas yra mažesnis nei 5, išspausdinamas klaidos pranešimas t.Errorf() yra iškviečiamas.

Galiausiai svarbu žinoti, kad „Go“ turi įmontuotą testavimo įrankį, vadinamą eik išbandyti. Šis įrankis atlieka visus projekto testus ir pateikia rezultatų ataskaitą. Eik išbandyti turi būti įvestas terminale, kai yra projekto kataloge, kad būtų pradėti bandymai. Dėl to bus vykdomi visi tame kataloge esantys testai.

< stiprus > eik išbandyti < bandymas - failą - vardas > _testas. eik stiprus >

Vieneto testo rezultatai

Išvestis parodys testavimo funkcijas, kurios buvo sėkmingos, nepavykusios arba praleistos.

PASS arba OK reiškia, kad kodas veikia taip, kaip numatyta. Tu gausi FIL jei testas nepavyksta.

The _test.go priesaga yra vienintelė, kurią tikrina „go test“ antrinė komanda failuose. Po to eikite bandomuoju būdu, kad tuose failuose (-iuose) būtų ieškoma specialių funkcijų, pvz., func TestXxx ir keletas kitų. Go test teisingai sukuria ir iškviečia šias funkcijas, jas vykdo, surenka ir praneša apie rezultatus, o galiausiai viską išvalo laikinajame pagrindiniame pakete.

Paskutinis žingsnis yra integruoti savo testus į savo kūrimo darbo eigą. Geriausia praktika yra atlikti testus kiekvieną kartą, kai įkeliate kodą į saugyklą. Testų integravimas į kūrimo darbo eigą užtikrina, kad jūsų kodas būtų nuolat tikrinamas ir visos problemos būtų išspręstos prieš įdiegiant.

Išvada

Rašymas vienetiniai testai yra esminis programinės įrangos kūrimo komponentas, nes garantuoja, kad jūsų kodas yra keičiamo dydžio, funkcionalus ir efektyvus. „Go“ testavimo biblioteka yra nesunki ir paprasta naudoti. Turėtumėte sugebėti sukurti „Golang“. vienetiniai testai aukščiausios kokybės, laikydamiesi aukščiau išvardytų procedūrų. Nepamirškite integruoti testų į savo kūrimo darbo eigą, kad užtikrintumėte, jog jūsų kodas būtų nuolat tikrinamas ir visos problemos būtų išspręstos prieš diegiant.