Maison  >  Article  >  développement back-end  >  Combinaison de gestion des erreurs et de tests unitaires des fonctions Golang

Combinaison de gestion des erreurs et de tests unitaires des fonctions Golang

王林
王林original
2024-04-24 17:36:02857parcourir

La gestion des erreurs dans GoLang utilise le type d'erreur pour représenter les erreurs, qui peuvent être créées via fmt.Errorf(). Les tests unitaires utilisent la bibliothèque de tests pour vérifier l'exactitude de la fonction en écrivant des cas de test et affirmer si les résultats renvoyés sont conformes aux attentes.

Combinaison de gestion des erreurs et de tests unitaires des fonctions Golang

Correspondance de la gestion des erreurs de la fonction GoLang et des tests unitaires

Gestion des erreurs

Le mécanisme de gestion des erreurs dans GoLang est très simple et efficace. En utilisant le type error, nous pouvons représenter les erreurs dans l'exécution de la fonction. Des messages d'erreur peuvent être créés via la fonction fmt.Errorf(). error 类型,我们可以表示函数执行中的错误。可以通过 fmt.Errorf() 函数创建错误信息。

package main

import (
    "fmt"
)

func divide(a, b int) (int, error) {
    if b == 0 {
        return 0, fmt.Errorf("cannot divide by zero")
    }
    return a / b, nil
}

func main() {
    result, err := divide(10, 2)
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(result)
    }
}

单元测试

单元测试对于验证函数的正确性至关重要。GoLang 提供了 testing 库,可以轻松编写和运行单元测试。

package main

import (
    "fmt"
    "testing"
)

func TestDivide(t *testing.T) {
    type testCases struct {
        a int
        b int
        expected int
        expectedError error
    }

    cases := []testCases{
        {10, 2, 5, nil},
        {10, 0, 0, fmt.Errorf("cannot divide by zero")},
    }

    for _, c := range cases {
        result, err := divide(c.a, c.b)
        if result != c.expected || err != c.expectedError {
            t.Errorf("Test failed for input (%d, %d) expected (%d, %s) but got (%d, %s)", c.a, c.b, c.expected, c.expectedError, result, err)
        }
    }
}

在此示例中,我们创建了一个测试表,其中包含不同的测试用例。然后,我们对每个测试用例运行 dividerrreee

Tests unitaires

🎜🎜Les tests unitaires sont cruciaux pour vérifier l'exactitude d'une fonction. GoLang fournit la bibliothèque testing pour écrire et exécuter facilement des tests unitaires. 🎜rrreee🎜Dans cet exemple, nous avons créé une table de test contenant différents cas de test. Nous exécutons ensuite la fonction divide sur chaque scénario de test et affirmons que les valeurs et erreurs renvoyées correspondent aux résultats attendus. 🎜🎜En combinant la gestion des erreurs avec les tests unitaires, nous pouvons garantir que les fonctions fonctionnent comme prévu dans diverses situations d'entrée. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn