Hogyan írjunk egységtesztet Golangban?

Hogyan Irjunk Egysegtesztet Golangban



Ha Ön Go fejlesztő, tudja, milyen fontos a tesztelés a kód minőségének biztosításához. Írás egységtesztek elengedhetetlen része a fejlesztési folyamatnak, és segíthet a hibák korai felismerésében, így hosszú távon időt és pénzt takaríthat meg. Ebben a cikkben megvitatjuk, hogyan kell írni egységtesztek Golangban.

Mi az az egységteszt?

Az első lépés az, hogy megértsük, mit egység tesztelése eszközök. Egységteszt A kis kódegységek vagy modulok tesztelésének folyamatára utal, hogy megbizonyosodjon arról, hogy mindegyik a várt módon működik. Egységteszt A kóddal kapcsolatos problémák eltávolítására, a kód stabilitásának javítására és a kód frissítése során a helyesség biztosítására szolgál. A szoftvertesztelés kezdeti szakasza a egységteszt , amelyet az UI teszt és az integrációs teszt követ.

A tesztelési csomag

Golangban, egység tesztelése nevű csomag segítségével történik tesztelés . A csomag különféle funkciókat biztosít, amelyek lehetővé teszik kódunk tesztelését. A Go kód automatikusan tesztelhető a tesztcsomag segítségével.







Példaprogram tesztelésre

Szükségünk van egy kódra a tesztek elemzéséhez, mielőtt bármit írhatnánk egységtesztek . Létrehozunk egy kis programot, amely két számot ad hozzá.



csomag fő

import (
'fmt'
)
funcAdd ( a int , b int ) int {
Visszatérés a + b
}

func main ( ) {
fmt. Println ( Hozzáadás ( 2 , 3 ) )
}

A fenti kód határozza meg a Add() függvény, amely két számot ad össze, a és b , mint bemeneti és kimeneti eredményt egész számként. A fő függvény csak a 2-es és 3-as számok hozzáadásával teszi meg az eredmény kinyomtatását.







Az írási egységtesztek menet közbeni egyezménye

Minden Go projektnek rendelkeznie kell egy külön tesztfájllal, amely tartalmazza az adott projekt összes tesztjét. A fájlnak meg kell egyeznie a tesztelt fájl nevével, és rendelkeznie kell _test.go hozzáadva a fájlnév végéhez. Például, ha egy nevű fájlt szeretnénk tesztelni kalkulátor.go , el kell neveznünk tesztfájlunkat calculator_test.go .

Ez a szokásos gyakorlat Teszteld a fájlokat hogy ugyanabban a csomagban vagy könyvtárban legyenek, mint az általuk kiértékelt kód. Amikor a go build parancsot használja, a fordító nem hozza létre ezeket a fájlokat, így nem kell aggódnia, hogy megjelennek-e a telepítésekben.



Írni a egységteszt a Go-ban használnunk kell a tesztelés csomag. Minden tesztfüggvényt a szóval kezdhetünk Teszt majd adjunk hozzá leírást arról, hogy mit szeretnénk tesztelni. Például, TesztHozzáadás vagy Tesztkivonás . Ezután megírhatjuk azt a tesztkódot, amely ellenőrzi, hogy az általunk tesztelt függvény a várt eredményeket adja-e vissza.

A Go-ban minden tesztfüggvénynek az utasítással kell kezdődnie t := tesztelés.T{}. Ez a kijelentés újat hoz létre tesztelés objektum, amellyel ellenőrizhetjük, hogy a teszt sikeres vagy sikertelen volt-e. Ezután használhatjuk a t.Errorf() funkció hibaüzenet kinyomtatásához, ha a teszt sikertelen.

Hogyan írjuk meg a tesztkódot?

Amikor egységteszteket írunk a Go programban, fontos, hogy először a tesztelni kívánt csomag megadásával kezdjük. A tesztcsomag importálása után hozzáférhet a csomag által exportált különféle típusokhoz és módszerekhez, beleértve a tesztelés.T típus. Maga a tesztelési logika ezután egy kulcsszóval kezdődő függvénybe kerül 'Teszt' utána egy leíró név, mint pl TesztHozzáadás() . Ezen a függvényen belül megadhatja a teszt kódját és a várt viselkedés ellenőrzéséhez szükséges állításokat.

Összefoglalva, a Go-ban végzett teszt jellemzői a következők:

  • Az egyetlen és egyetlen kötelező paraméter az t *tesztelés.T
  • A tesztelési funkció a Teszt szóval kezdődik, majd egy nagybetűvel kezdődő szó vagy kifejezés követi.
  • A hiba jelzéséhez a tesztelő függvénynek meg kell hívnia bármelyiket t.Errorf vagy t.Fail, és további hibakeresési információk biztosítására hiba nélkül, a t.Log használható.
  • A hibamentes hibakeresési információk biztosításához használja a t.Log-ot.
  • A tesztek a névvel ellátott fájlokban tárolódnak foo_test.go , például, math_test.go .

Mentés után zárja be a fájlt.

csomag fő

import (
'tesztelés'
)

funcTestAdd ( t * tesztelés. T ) {
eredmény := Hozzáadás ( 2 , 3 )
ha eredmény != 5 {
t. Errorf ( 'Hozzáadás(2, 3) = %d; 5-öt akarok' , eredmény )
}
}

A Add() funkciót teszteli a TesztHozzáadás() függvényt, amelyet ebben a tesztben definiálunk. A 2-es és 3-as számokat használja a Hozzáadás hívásához, majd megerősíti, hogy az eredmény 5. Hibaüzenet jelenik meg, ha az eredmény 5-nél kisebb, amikor t.Errorf() meg van hívva.

Végül fontos tudni, hogy a Go rendelkezik egy beépített tesztelőeszközzel, az úgynevezett menj tesztelni. Ez az eszköz futtatja a projekt összes tesztjét, és jelentést készít az eredményekről. Menj tesztelni be kell írni a terminálba, miközben a projektkönyvtárban van a tesztek elindításához. Ennek eredményeként a könyvtárban található összes teszt lefut.

< erős > menj tesztelni < teszt - fájlt - név > _teszt. megy erős >

Az egységteszt eredményei

A kimenet megmutatja a sikeres, sikertelen vagy kihagyott tesztfunkciókat.

PASS vagy OK azt jelzi, hogy a kód rendeltetésszerűen működik. Fogsz kapni FAIL ha egy teszt sikertelen.

A _test.go Az utótag az egyetlen, amelyet a go test alparancs ellenőrzi a fájlokban. Ezt követően a go test megkeresi a fájl(oka)t a speciális funkciókra, például a func-ra TesztXxx és még többen. A Go test helyesen összeállítja és meghívja ezeket a függvényeket, végrehajtja őket, összegyűjti és jelentést készít az eredményekről, végül mindent megtisztít egy ideiglenes főcsomagban.

Az utolsó lépés a tesztek integrálása a fejlesztési munkafolyamatba. A legjobb gyakorlat az, hogy minden alkalommal lefuttatja a teszteket, amikor a kódot egy lerakatba helyezi. A teszteknek a fejlesztési munkafolyamatba való integrálása biztosítja, hogy a kódot folyamatosan teszteljük, és az esetleges problémákat a telepítés előtt megoldjuk.

Következtetés

Írás egységtesztek A szoftverfejlesztés kulcsfontosságú összetevője, mert garantálja, hogy a kód méretezhető, működőképes és hatékony. A Go tesztelési könyvtár egyszerű és egyszerűen használható. Képesnek kell lennie Golang létrehozására egységtesztek a legmagasabb minőséget a fent felsorolt ​​eljárások követésével. Ne felejtse el integrálni a teszteket a fejlesztési munkafolyamatba, hogy biztosítsa a kód folyamatos tesztelését, és az esetleges problémákat a telepítés előtt megoldja.