Jak napsat Unit Test v Golangu?

Jak Napsat Unit Test V Golangu



Pokud jste vývojář Go, víte, jak důležité je testování pro zajištění kvality vašeho kódu. Psaní jednotkové testy je nezbytnou součástí vývojového procesu a může vám pomoci včas zachytit chyby, což vám z dlouhodobého hlediska ušetří čas a peníze. V tomto článku budeme diskutovat o tom, jak psát jednotkové testy v Golangu.

Co je Unit Testing?

Prvním krokem je pochopit co testování jednotky prostředek. Testování jednotek odkazuje na proces testování malých kódových jednotek nebo modulů, aby se zajistilo, že každý z nich funguje podle očekávání. Testování jednotek se používá k odstranění problémů z kódu, zlepšení stability kódu a zajištění správnosti při aktualizaci kódu. Počáteční fází testování softwaru je jednotkový test , na který navazuje test uživatelského rozhraní a integrační test.

Testovací balíček

v Golangu, testování jednotky se provádí pomocí balíčku tzv testování . Balíček poskytuje různé funkce, které nám umožňují testovat náš kód. Go kód lze automaticky testovat pomocí testovacího balíčku.







Příklad programu k testování

Než budeme moci nějaký napsat, potřebujeme nějaký kód pro naše testy k analýze jednotkové testy . Vytvoříme malý program, který sečte dvě čísla.



hlavní balíček

import (
'fmt'
)
funcAdd ( A int , b int ) int {
vrátit se A + b
}

func main ( ) {
fmt. Println ( Přidat ( 2 , 3 ) )
}

Výše uvedený kód definuje Přidat() funkce, která sčítá dvě čísla, A a b , jako vstupy a výstupy jako celé číslo. Sčítání čísel 2 a 3 je vše, co hlavní funkce dělá před tiskem výsledku.







Konvence psaní jednotkových testů na cestách

Každý projekt Go by měl mít samostatný testovací soubor, který obsahuje všechny testy pro daný projekt. Soubor by měl mít stejný název jako testovaný soubor a měl by mít _test.go přidán na konec názvu souboru. Například pokud chceme otestovat soubor s názvem kalkulačka.go , měli bychom pojmenovat náš testovací soubor calculator_test.go .

Je to standardní praxe pro Jděte otestovat soubory být umístěn ve stejném balíčku nebo adresáři jako kód, který vyhodnocují. Když použijete příkaz go build, kompilátor tyto soubory nevytvoří, takže se nemusíte obávat jejich zobrazení v nasazení.



Chcete-li napsat a jednotkový test v Go musíme použít testování balík. Každou testovací funkci můžeme začít slovem Test a poté přidat popis toho, co chceme testovat. Například, TestAddition nebo TestOdčítání . Poté můžeme napsat testovací kód, který zkontroluje, zda funkce, kterou testujeme, vrací očekávané výsledky.

V Go by každá testovací funkce měla začínat příkazem t := testování.T{}. Toto prohlášení vytváří nový testování objekt, který můžeme použít ke kontrole, zda test prošel nebo selhal. Poté můžeme použít t.Errorf() funkce pro tisk chybové zprávy, pokud test selže.

Jak napsat testovací kód?

Pokud jde o psaní testů jednotek v Go, je důležité začít zadáním balíčku, který chcete testovat. Po importu testovacího balíčku máte přístup k různým typům a metodám, které balíček exportuje, včetně testování.T typ. Samotná testovací logika je pak zapsána ve funkci, která začíná klíčovým slovem 'Test' následuje popisný název, jako např TestAdd() . V rámci této funkce můžete zahrnout kód pro test a jakékoli výrazy potřebné k ověření očekávaného chování.

Stručně řečeno, vlastnosti testu v Go jsou následující:

  • Jediným a jediným povinným parametrem je t *testování.T
  • Funkce testování začíná slovem Test a poté následuje slovo nebo fráze začínající velkým písmenem.
  • Chcete-li indikovat selhání, testovací funkce by měla zavolat buď t.Errorf nebo t.Fail, a pro poskytnutí dalších informací o ladění bez způsobení selhání lze použít t.Log.
  • Chcete-li poskytnout bezchybné informace o ladění, použijte t.Log.
  • Testy jsou uloženy v souborech s názvem foo_test.go , například, math_test.go .

Po uložení soubor zavřete.

hlavní balíček

import (
'testování'
)

funcTestAdd ( t * testování. T ) {
výsledek := Přidat ( 2 , 3 )
-li výsledek != 5 {
t. Chyba ( 'Add(2, 3) = %d; chtít 5' , výsledek )
}
}

The Přidat() funkce je testována pomocí TestAdd() funkce, která je definována v tomto testu. Použije čísla 2 a 3 k volání Add a poté potvrdí, že výsledek je 5. Pokud je výsledek menší než 5, vytiskne se chybová zpráva. t.Errorf() je vyvoláno.

Nakonec je důležité vědět, že Go má vestavěný testovací nástroj s názvem jít testovat. Tento nástroj spouští všechny testy v projektu a poskytuje zprávu o výsledcích. Jdi testovat pro spuštění testů je nutné zadat v terminálu v adresáři projektu. Výsledkem budou všechny testy v tomto adresáři.

< silný > jít testovat < test - soubor - název > _test. jít silný >

Výsledky Unit Test

Výstup vám ukáže testovací funkce, které prošly, neuspěly nebo přeskočily.

PASS nebo OK označuje, že kód funguje tak, jak bylo zamýšleno. Obdržíte SELHAT pokud test selže.

The _test.go přípona je jediná, kterou dílčí příkaz go test kontroluje v souborech. Poté go test prohledá tyto soubory pro nějaké speciální funkce, jako je func TestXxx a několik dalších. Go test sestaví a zavolá tyto funkce správně, provede je, shromáždí a nahlásí výsledky a nakonec vše vyčistí v dočasném hlavním balíčku.

Posledním krokem je integrace testů do vašeho vývojového workflow. Nejlepším postupem je spouštět testy pokaždé, když odevzdáte svůj kód do úložiště. Integrace vašich testů do vašeho vývojového pracovního postupu zajišťuje, že váš kód bude průběžně testován a všechny problémy budou vyřešeny před nasazením.

Závěr

Psaní jednotkové testy je klíčovou součástí vývoje softwaru, protože zaručuje, že váš kód je škálovatelný, funkční a efektivní. Testovací knihovna Go je jednoduchá a přímočará k použití. Měli byste být schopni vytvořit Golang jednotkové testy nejvyšší kvality podle výše uvedených postupů. Nezapomeňte integrovat své testy do pracovního postupu vývoje, abyste zajistili, že váš kód bude průběžně testován a všechny problémy budou vyřešeny před nasazením.