In questo articolo, ci concentreremo su una singola entità di un ciclo di vita di uno sviluppatore: test. Il codice di test è una funzionalità molto utile per qualsiasi sviluppatore. Consente di trovare e fissare i bug prima di distribuire il codice in produzione. Sebbene ci siano molti modi e funzionalità per implementare i test del codice, questo articolo si concentrerà sul pacchetto Go Assert.
Iniziare con i test
Prima di immergerci su come lavorare con il pacchetto Testy, impariamo come iniziare con GO Test.
Il primo passo è sapere cosa vuoi testare. Questa potrebbe essere una funzione semplice per una raccolta di metodi.
Facciamo un semplice programma di esempio che moltiplica il suo input per 10.
Inizia creando una directory per archiviare il tuo codice.
Test MKIDRNaviga nella directory e crea un file GO contenente il tuo programma. Per semplicità, chiameremo questo file principale.andare
Test CDModifica il file con il tuo editor di testo e crea il tuo programma. Per seguire questo tutorial, è possibile aggiungere il codice come mostrato di seguito:
Pacchetto principaleNel programma di esempio, abbiamo una funzione che prende un input intero e restituisce l'intero moltiplicato per 10.
Salva e chiudi il file.
Il prossimo passo è creare test per il programma sopra. Per fare ciò, dobbiamo creare un file nella stessa directory con il suffisso _test. Questo dice al modulo di test Go che questo file contiene una suite di test per il programma nella directory.
Dal momento che vogliamo creare un test per il principale.Programma GO, chiameremo il file di test come:
toccare main_test.andareNel file di test, possiamo creare istruzioni di test per il nostro programma.
Dal momento che vogliamo utilizzare l'uso del pacchetto Assert, dobbiamo importare i test e il pacchetto Assert.
Puoi includere le importazioni come:
pacchettoSuccessivamente, crea una funzione di test per testare il programma principale. Possiamo creare istruzioni di test come mostrato:
Pacchetto principaleNel programma sopra, creiamo una funzione di test che effettua un test.T oggetto. Il framework di test consente alla funzione di scrivere non nella posizione appropriata a condizione che questo oggetto.
All'interno della funzione, utilizziamo il pacchetto Assert per verificare se la funzione restituisce un risultato pari ai parametri forniti. Se la funzione multiplica prende l'intero 10 e restituisce un valore pari a 100, quindi passa il test.
Salva il file di test ed esegui il test utilizzando il comando:
Vai a testIl comando sopra dovrebbe prendere il file di test ed eseguire i test configurati.
Un output di esempio è come mostrato:
=== esegui TestMultiplyCome noterai dall'output sopra, la funzione passa il test.
Cambiamo il valore della funzione per illustrare un'istruzione di fallimento. Ad esempio, modificare il terzo parametro della funzione di test in un valore errato. Per esempio:
FUNCTestMultiply (T *Test.T)In questo esempio, stiamo dicendo al programma che se la funzione non restituisce 10, la funzione fallisce.
Nota: tieni presente che la funzione di test non è corretta.
Se eseguiamo il test, dovremmo fallire come:
=== esegui TestMultiplyL'output sopra illustra un test non riuscito.
Golang afferma
Ora che abbiamo le basi dei test fuori mano, ci spostiamo sul pacchetto Assert. Nel nostro esempio precedente, abbiamo usato il metodo uguale per verificare se la funzione restituisce il valore previsto. Tuttavia, il pacchetto Assert fornisce una pletora di strumenti e metodi di test per semplificare il test del codice.
Esploriamo alcuni altri esempi per illustrare la funzionalità del pacchetto Assert.
Golang Test Inequality
Possiamo utilizzare il pacchetto Assert per verificare la disuguaglianza utilizzando il metodo NoteQual (). La sintassi della funzione è come mostrata:
Func NoteQual (T Testingt, previsto, interfaccia effettiva , msgandargs… interfaccia ) bool
La funzione prende una T.Oggetto di prova, il valore previsto e il valore effettivo e un messaggio di stampa. Controlla se il valore previsto e effettivo non è uguale. Se vero, il test passa, altrimenti, fallisci.
Un esempio è come mostrato:
FUNCTESTNoteQuel (T *Test.T)Il codice sopra controlla se i valori non sono uguali. Un output di esempio è come mostrato:
=== esegui TestNotequalGolang Test HTTP Codice di stato
Possiamo utilizzare il metodo HTTPSTATICUDE () per verificare se un gestore restituisce il codice di stato specificato.
Supponiamo che abbiamo un server HTTP, che se facciamo una richiesta di restituzione del codice di stato di 200. Non ci immergeremo in profondità in come creare un server HTTP in GO. Dai un'occhiata al nostro tutorial sull'argomento per saperne di più.
Un esempio di esempio HTTP è mostrato:
Pacchetto principalePossiamo creare un test per verificare se la funzione HTTP Handler restituisce il codice di stato specificato. Nel nostro caso, la funzione HTTP Handler è il metodo Sayhello. La funzione di test è come mostrata:
Func TestStatusSode (T *Test.T)Nell'esempio sopra, creiamo una funzione di test per verificare l'invio di una richiesta GET al server con la funzione HTTP Handler Sayhello, restituisce il codice di stato di 200.
Il codice restituisce:
=== Esegui TestSTUSCODEGolang Test Panic
Un altro test che possiamo eseguire è verificare se una funzione specifica viene. Possiamo usare l'affermazione.Metodo panico () come mostrato:
FUNCTestPanic (T *Test.T)Nell'esempio sopra, controlliamo se la funzione se fa il panico.
Golang controlla se esiste la directory
Se si desidera verificare se esiste una directory specifica all'interno di un percorso specificato, è possibile utilizzare il metodo Direxists ().
Per esempio:
FUNCTESTDIR (T *Test.T)Conclusione
Questa è stata una guida completa su come iniziare con i test nel linguaggio di programmazione Go. Il test è pesantemente utilizzato nei progetti multi-sviluppo. Quindi, imparare a eseguire test è eccezionale.
C'è molto più fornito dal pacchetto Assert rispetto a quelli mostrati in questo tutorial. La documentazione si espande su questo.
https: // pkg.andare.dev/github.com/stretchr/testfy/assert