Maison > développement back-end > Golang > le corps du texte

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

王林
Libérer: 2024-04-24 17:36:02
original
856 Les gens l'ont consulté

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)
    }
}
Copier après la connexion

单元测试

单元测试对于验证函数的正确性至关重要。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)
        }
    }
}
Copier après la connexion

在此示例中,我们创建了一个测试表,其中包含不同的测试用例。然后,我们对每个测试用例运行 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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal