Kā uzrakstīt vienības testu Golangā?

Ka Uzrakstit Vienibas Testu Golanga



Ja esat Go izstrādātājs, jūs zināt, cik svarīga ir testēšana, lai nodrošinātu jūsu koda kvalitāti. Rakstīšana vienību testi ir būtiska izstrādes procesa sastāvdaļa, un tā var palīdzēt novērst kļūdas agri, ietaupot laiku un naudu ilgtermiņā. Šajā rakstā mēs apspriedīsim, kā rakstīt vienību testi Golangā.

Kas ir vienības pārbaude?

Pirmais solis ir saprast, ko vienību pārbaude nozīmē. Vienības pārbaude attiecas uz nelielu koda vienību vai moduļu testēšanas procesu, lai nodrošinātu, ka katrs no tiem darbojas, kā paredzēts. Vienības pārbaude tiek izmantots, lai novērstu problēmas no koda, uzlabotu koda stabilitāti un nodrošinātu pareizību koda atjaunināšanas laikā. Programmatūras testēšanas sākuma posms ir vienības tests , kam seko UI tests un integrācijas tests.

Testēšanas pakotne

Golangā, vienību pārbaude tiek veikta, izmantojot paketi ar nosaukumu testēšana . Pakete nodrošina dažādas funkcijas, kas ļauj mums pārbaudīt mūsu kodu. Go kodu var automātiski pārbaudīt ar testēšanas pakotnes palīdzību.







Pārbaudes programmas piemērs

Mums ir nepieciešams kods mūsu testu analīzei, pirms mēs varam to rakstīt vienību testi . Mēs izveidosim nelielu programmu, kas pievieno divus skaitļus.



galvenā pakete

imports (
'fmt'
)
funcAdd ( a starpt , b starpt ) starpt {
atgriezties a + b
}

galvenā funkcija ( ) {
fmt. Println ( Pievienot ( 2 , 3 ) )
}

Iepriekš minētais kods definē Pievienot () funkcija, kas pievieno divus skaitļus, a un b , kā ievadi un izvada rezultātu kā veselu skaitli. Ciparu 2 un 3 pievienošana ir viss, ko galvenā funkcija dara pirms rezultāta drukāšanas.







Konvencija par rakstīšanas vienību testiem ceļā

Katram Go projektam ir jābūt atsevišķam testa failam, kurā ir visi šī projekta testi. Faila nosaukumam ir jābūt tādam pašam kā pārbaudāmajam failam, un tam ir jābūt _test.go pievienots faila nosaukuma beigās. Piemēram, ja mēs vēlamies pārbaudīt failu ar nosaukumu kalkulators.go , mums ir jānosauc mūsu testa fails calculator_test.go .

Tā ir standarta prakse Pārbaudi failus jāatrodas tajā pašā pakotnē vai direktorijā, kurā atrodas kods, kuru viņi novērtē. Kad izmantojat komandu go build, kompilators šos failus neveido, tāpēc jums nav jāuztraucas par to parādīšanos izvietošanas laikā.



Lai uzrakstītu a vienības tests programmā Go mums ir jāizmanto testēšana iepakojums. Katru testa funkciju varam sākt ar vārdu Pārbaude un pēc tam pievienojiet aprakstu par to, ko vēlamies pārbaudīt. Piemēram, TestsPapildinājums vai Testatņemšana . Pēc tam mēs varam uzrakstīt testa kodu, kas pārbauda, ​​vai funkcija, kuru mēs pārbaudām, atgriež gaidītos rezultātus.

Programmā Go katrai testa funkcijai jāsākas ar paziņojumu t := testēšana.T{}. Šis paziņojums rada jaunu testēšana objektu, ko varam izmantot, lai pārbaudītu, vai pārbaude ir izturēta vai neizdevusies. Pēc tam mēs varam izmantot t.Errorf() funkcija, lai izdrukātu kļūdas ziņojumu, ja pārbaude neizdodas.

Kā uzrakstīt pārbaudes kodu?

Kad runa ir par vienību testu rakstīšanu programmā Go, vispirms ir svarīgi norādīt pakotni, kuru vēlaties pārbaudīt. Pēc testēšanas pakotnes importēšanas varat piekļūt dažādiem pakotnes eksportētajiem veidiem un metodēm, tostarp testēšana.T veids. Pēc tam pati testēšanas loģika tiek ierakstīta funkcijā, kas sākas ar atslēgvārdu 'Pārbaude' kam seko aprakstošs nosaukums, piemēram, TestAdd() . Šajā funkcijā varat iekļaut testa kodu un visus apgalvojumus, kas nepieciešami, lai pārbaudītu paredzamo darbību.

Rezumējot, testa īpašības Go ir šādas:

  • Vienīgais un vienīgais nepieciešamais parametrs ir t *pārbaude.T
  • Testēšanas funkcija sākas ar vārdu Test, un pēc tam seko vārds vai frāze, kas sākas ar lielo burtu.
  • Lai norādītu uz kļūmi, testēšanas funkcijai ir jāizsauc vai nu t.Errorf vai t.Neizdevās, un, lai sniegtu papildu atkļūdošanas informāciju, neizraisot kļūmi, var izmantot t.Log.
  • Lai nodrošinātu nevainojamu atkļūdošanas informāciju, izmantojiet t.Log.
  • Testi tiek saglabāti failos ar nosaukumu foo_test.go , piemēram, math_test.go .

Aizveriet failu pēc tā saglabāšanas.

galvenā pakete

imports (
'pārbaude'
)

funcTestAdd ( t * testēšana. T ) {
rezultāts := Pievienot ( 2 , 3 )
ja rezultāts != 5 {
t. Errorf ( 'Pievienot(2, 3) = %d; gribu 5' , rezultāts )
}
}

The Pievienot () funkciju pārbauda TestPievienot() funkcija, kas ir definēta šajā testā. Tas izmanto ciparus 2 un 3, lai izsauktu Add, un pēc tam apstiprina, ka rezultāts ir 5. Ja rezultāts ir mazāks par 5, tiek izdrukāts kļūdas ziņojums. t.Errorf() tiek piesaukts.

Visbeidzot, ir svarīgi zināt, ka Go ir iebūvēts testēšanas rīks, ko sauc ej pārbaudīt. Šis rīks veic visus projekta testus un nodrošina rezultātu pārskatu. Ej pārbaudi ir jāievada terminālī, atrodoties projekta direktorijā, lai sāktu testus. Rezultātā tiks izpildīti visi šajā direktorijā esošie testi.

< stiprs > ej pārbaudīt < pārbaude - failu - nosaukums > _pārbaude. aiziet stiprs >

Vienības testa rezultāti

Izvadē tiks parādītas pārbaudes funkcijas, kuras izturēja, neizdevās vai izlaistas.

PASS vai OK norāda, ka kods darbojas, kā paredzēts. Tu saņemsi FAIL ja tests neizdodas.

The _test.go sufikss ir vienīgais, ko failos pārbauda apakškomanda go test. Pēc tam pārbaudiet, vai šajos failos(-os) tiek meklētas īpašas funkcijas, piemēram, func TestXxx un vairākas citas. Go tests pareizi veido un izsauc šīs funkcijas, izpilda tās, apkopo un ziņo par rezultātiem, un visbeidzot visu iztīra pagaidu galvenajā pakotnē.

Pēdējais solis ir integrēt testus izstrādes darbplūsmā. Labākā prakse ir palaist testus katru reizi, kad ievietojat savu kodu repozitorijā. Jūsu testu integrācija izstrādes darbplūsmā nodrošina, ka jūsu kods tiek nepārtraukti pārbaudīts un visas problēmas tiek atrisinātas pirms izvietošanas.

Secinājums

Rakstīšana vienību testi ir būtiska programmatūras izstrādes sastāvdaļa, jo tā garantē, ka jūsu kods ir mērogojams, funkcionāls un efektīvs. Go testēšanas bibliotēka ir bez piepūles un vienkārši lietojama. Jums vajadzētu būt iespējai izveidot Golang vienību testi augstākās kvalitātes, ievērojot iepriekš minētās procedūras. Atcerieties integrēt testus izstrādes darbplūsmā, lai nodrošinātu, ka kods tiek nepārtraukti pārbaudīts un visas problēmas tiek atrisinātas pirms izvietošanas.