Ako napísať test jednotiek v Golangu?

Ako Napisat Test Jednotiek V Golangu



Ak ste vývojár Go, viete, aké dôležité je testovanie na zabezpečenie kvality vášho kódu. Písanie jednotkové testy je nevyhnutnou súčasťou vývojového procesu a môže vám pomôcť včas zachytiť chyby, čo vám z dlhodobého hľadiska ušetrí čas a peniaze. V tomto článku budeme diskutovať o tom, ako písať jednotkové testy v Golangu.

Čo je Unit Testing?

Prvým krokom je pochopiť čo jednotkové testovanie znamená. Jednotkové testovanie sa vzťahuje na proces testovania malých kódových jednotiek alebo modulov, aby sa zabezpečilo, že každá z nich funguje podľa očakávania. Jednotkové testovanie sa používa na odstránenie problémov z kódu, zlepšenie stability kódu a zabezpečenie správnosti pri aktualizácii kódu. Počiatočná fáza testovania softvéru je jednotkový test , po ktorom nasleduje test používateľského rozhrania a integračný test.

Testovací balíček

v Golangu, jednotkové testovanie sa vykonáva pomocou balíka tzv testovanie . Balík poskytuje rôzne funkcie, ktoré nám umožňujú testovať náš kód. Go kód možno automaticky testovať pomocou testovacieho balíka.







Príklad programu na testovanie

Potrebujeme nejaký kód na analýzu, aby sme ho mohli napísať jednotkové testy . Vytvoríme malý program, ktorý sčíta dve čísla.



hlavný balík

importovať (
'fmt'
)
funcAdd ( a int , b int ) int {
vrátiť a + b
}

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

Vyššie uvedený kód definuje Pridať () funkcia, ktorá sčíta dve čísla, a a b , ako vstupy a výstupy ako celé číslo. Sčítanie čísel 2 a 3 je všetko, čo hlavná funkcia robí pred vytlačením výsledku.







Dohovor o písaní jednotkových testov na cestách

Každý projekt Go by mal mať samostatný testovací súbor, ktorý obsahuje všetky testy pre daný projekt. Súbor by mal mať rovnaký názov ako testovaný súbor a mal by mať _test.go pridaný na koniec názvu súboru. Napríklad, ak chceme otestovať súbor s názvom kalkulačka.go , mali by sme pomenovať náš testovací súbor calculator_test.go .

Je to štandardná prax pre Prejdite na testovanie súborov byť umiestnené v rovnakom balíku alebo adresári ako kód, ktorý vyhodnocujú. Keď použijete príkaz go build, kompilátor tieto súbory nevytvorí, takže sa nemusíte obávať ich zobrazenia v nasadeniach.



Napísať a jednotkový test v Go musíme použiť testovanie balík. Každú testovaciu funkciu môžeme začať slovom Test a potom pridajte popis toho, čo chceme testovať. Napríklad, TestAddition alebo TestOdčítanie . Potom môžeme napísať testovací kód, ktorý skontroluje, či funkcia, ktorú testujeme, vracia očakávané výsledky.

V Go by každá testovacia funkcia mala začínať príkazom t := testovanie.T{}. Toto vyhlásenie vytvára nové testovanie objekt, ktorý môžeme použiť na kontrolu, či test prešiel alebo zlyhal. Potom môžeme použiť t.Errorf() funkcia na vytlačenie chybového hlásenia, ak test zlyhá.

Ako napísať testovací kód?

Pokiaľ ide o písanie jednotkových testov v Go, je dôležité začať špecifikovaním balíka, ktorý chcete testovať. Po importovaní testovacieho balíka máte prístup k rôznym typom a metódam, ktoré balík exportuje, vrátane testovanie.T typu. Samotná testovacia logika je potom zapísaná vo funkcii, ktorá začína kľúčovým slovom 'Test' za ktorým nasleduje popisný názov, ako napr TestAdd() . V rámci tejto funkcie môžete zahrnúť kód pre test a akékoľvek tvrdenia potrebné na overenie očakávaného správania.

Stručne povedané, charakteristiky testu v Go sú nasledovné:

  • Jediný a jediný požadovaný parameter je t *testovanie.T
  • Funkcia testovania začína slovom Test a potom nasleduje slovo alebo fráza, ktorá začína veľkým písmenom.
  • Na označenie zlyhania by testovacia funkcia mala zavolať buď t.Errorf alebo t.Fail, a na poskytnutie ďalších informácií o ladení bez toho, aby došlo k zlyhaniu, možno použiť t.Log.
  • Na doručenie bezchybných informácií o ladení použite t.Log.
  • Testy sú uložené v súboroch s názvom foo_test.go , napríklad, math_test.go .

Po uložení súbor zatvorte.

hlavný balík

importovať (
'testovanie'
)

funcTestAdd ( t * testovanie. T ) {
výsledok := Pridať ( 2 , 3 )
ak výsledok != 5 {
t. Chyba ( 'Pridať(2, 3) = %d; chcieť 5' , výsledok )
}
}

The Pridať () funkcia je testovaná pomocou TestAdd() funkcia, ktorá je definovaná v tomto teste. Na zavolanie Add použije čísla 2 a 3 a potom potvrdí, že výsledok je 5. Ak je výsledok menší ako 5, vytlačí sa chybové hlásenie. t.Errorf() sa odvoláva.

Nakoniec je dôležité vedieť, že Go má vstavaný testovací nástroj tzv ísť otestovať. Tento nástroj spúšťa všetky testy v projekte a poskytuje správu o výsledkoch. Choď otestovať musia byť napísané v termináli v adresári projektu na spustenie testov. Výsledkom budú všetky testy v tomto adresári.

< silný > ísť otestovať < test - súbor - názov > _test. ísť silný >

Výsledky Unit Test

Výstup vám ukáže testovacie funkcie, ktoré prešli, zlyhali alebo preskočili.

PASS alebo OK označuje, že kód funguje podľa plánu. Dostanete FAIL ak test zlyhá.

The _test.go prípona je jediná, ktorú podpríkaz go test kontroluje v súboroch. Potom prejdite na test a vyhľadá v týchto súboroch nejaké špeciálne funkcie, ako napríklad func TestXxx a niekoľko ďalších. Go test správne zostavuje a volá tieto funkcie, spúšťa ich, zhromažďuje a hlási výsledky a nakoniec všetko vyčistí v dočasnom hlavnom balíku.

Posledným krokom je integrácia testov do vášho vývojového pracovného postupu. Najlepšou praxou je spustiť testy zakaždým, keď odošlete svoj kód do úložiska. Integrácia vašich testov do vášho vývojového pracovného postupu zaisťuje, že váš kód je neustále testovaný a všetky problémy sú vyriešené pred nasadením.

Záver

Písanie jednotkové testy je kľúčovou súčasťou vývoja softvéru, pretože zaručuje, že váš kód je škálovateľný, funkčný a efektívny. Testovacia knižnica Go je jednoduchá a priamočiara na použitie. Mali by ste byť schopní vytvoriť Golang jednotkové testy najvyššej kvality podľa vyššie uvedených postupov. Nezabudnite integrovať svoje testy do vášho vývojového pracovného postupu, aby ste sa uistili, že váš kód bude neustále testovaný a všetky problémy budú vyriešené pred nasadením.