SUPERCAT.DEV

Benvenut* sul mio blog

GOLANG

I test in Go

01-08-2022

Piccolo tutorial su come preparare un test in Golang

Il file principale

File main.go

package main

import (
    "errors"
    "fmt"
)

func main() {
    res, err := dividi(10.0, 5.0)

    if err != nil {
        panic(err)
    }

    fmt.Println(res)
}

func dividi(a, b float32) (float32, error) {
    if b == 0 {
        return 0, errors.New("impossibile dividere per zero")
    }

    return a / b, nil
}

Per eseguire il file main.go

go run .

Test

File main_test.go

package main

import "testing"

var tests = []struct {
    name string
    a float32
    b float32
    voluto float32
    isErr bool
}{
    {"valid", 12.0, 2.0, 6.0, false},
    {"invalid", 10.0, 0.0, 0.0, true},
}

func TestDividi(t *testing.T) {
    for _, tt := range tests {
        voluto, err := dividi(tt.a, tt.b)
        if (err != nil) != tt.isErr {
            t.Errorf("%s: errore %v, errore voluto %v", tt.name, err, tt.isErr)
        }
        if voluto != tt.voluto {
            t.Errorf("%s: %v, voluto %v", tt.name, voluto, tt.voluto)
        }
    }
}

Per eseguire i test

go test

Download file sorgente

cover