Sobes.tech
Junior — Middle

Vai jūs varētu pastāstīt par testēšanas procesu, ko jūs izmantojāt savā pēdējā projektā?

sobes.tech AI

Atbilde no AI

Pēdējā Go projektā es izmantoju vienību testus ar testing paketi. Katram galvenajam komponentam es rakstīju atsevišķus testus, kas pārbaudīja funkciju pareizu darbību ar dažādiem ievades datiem. Tāpat es izmantoju testu tabulas, lai atvieglotu daudzu gadījumu pārbaudi.

Integrācijas testiem es palaidu testus, kas pārbaudīja vairākus komponentus kopā, piemēram, darbu ar datu bāzi caur mock objektiem.

Vienkārša testa piemērs:

func TestSum(t *testing.T) {
    tests := []struct {
        a, b, expected int
    }{
        {1, 2, 3},
        {5, 5, 10},
        {-1, 1, 0},
    }

    for _, tt := range tests {
        result := Sum(tt.a, tt.b)
        if result != tt.expected {
            t.Errorf("Sum(%d, %d) = %d; gribam %d", tt.a, tt.b, result, tt.expected)
        }
    }
}

Tāpat es izmantoju go test -cover, lai novērtētu koda pārklājumu ar testiem, un CI/CD, kas automātiski palaidīs testus katrā komitā.