Maison  >  Article  >  développement back-end  >  Comment tester la gestion des erreurs dans Golang ?

Comment tester la gestion des erreurs dans Golang ?

WBOY
WBOYoriginal
2024-06-03 17:00:00839parcourir

Les méthodes courantes pour tester la gestion des erreurs dans Go incluent : l'utilisation de error.Error() pour vérifier si le message d'erreur est une chaîne vide ; l'utilisation de testing.T.FatalError() et testing.T.Errorf() pour afficher le message d'erreur et marquer le test comme ayant échoué Ou continuer l'exécution ; utiliser les fonctions d'assertion require, telles que require.NoError et require.EqualError, pour arrêter le test en cas d'échec.

如何在 Golang 中测试错误处理?

Comment tester la gestion des erreurs dans Golang ?

Un aspect important de l'écriture de code robuste dans Golang est la gestion correcte des erreurs. Tester les processus de gestion des erreurs est essentiel pour garantir que votre code répond correctement lorsque des circonstances imprévues surviennent.

Utilisez error.Error()error.Error()

最简单的方法是检查 error 类型变量的值是否为空字符串。这适用于不需要检查具体错误信息的情况。

func TestError(t *testing.T) {
    err := errors.New("Error occurred")

    if err != nil {
        t.Error(err)
    }
}

使用 testing.T.FatalError()testing.T.Errorf()

FatalErrorErrorf 函数可以输出错误消息,并将测试标记为失败。FatalError 会立即停止测试,而 Errorf 会继续执行测试,但会打印错误消息。

func TestError(t *testing.T) {
    err := errors.New("Error occurred")

    t.Fatalf("Error occurred: %v\n", err)
    // t.Errorf("Error occurred: %v\n", err)
}

使用 require 断言

require 是 Go 中的内置断言函数,在失败时会停止测试。它提供了多种方法来检查错误,包括 require.NoErrorrequire.EqualError

func TestError(t *testing.T) {
    err := errors.New("Error occurred")

    require.NoError(t, err)
    // require.EqualError(t, err, "Error occurred")
}

实战案例

以下是一个测试 .Send()

Le moyen le plus simple est de vérifier si la valeur de la variable de type error est une chaîne vide. Ceci est utile lorsqu'il n'est pas nécessaire de rechercher des messages d'erreur spécifiques.

func TestClient_Send(t *testing.T) {
    client := &Client{
        conn: mockConn{},
    }

    msg := &Message{
        Data: []byte("Hello"),
    }

    err := client.Send(msg)

    require.EqualError(t, err, "Error sending message: mock connection error")
}

Utilisez testing.T.FatalError() et testing.T.Errorf()

FatalError et Errorf La fonction code> code> peut générer un message d'erreur et marquer le test comme échoué. <code>FatalError arrête le test immédiatement, tandis que Errorf continue le test mais imprime un message d'erreur. 🎜rrreee🎜Utilisez require pour affirmer 🎜🎜require est une fonction d'assertion intégrée dans Go qui arrête le test en cas d'échec. Il fournit plusieurs méthodes pour vérifier les erreurs, notamment require.NoError et require.EqualError. 🎜rrreee🎜Cas pratique🎜🎜Ce qui suit est un exemple pratique de test de gestion des erreurs dans la méthode .Send() : 🎜rrreee🎜Conclusion🎜🎜La méthode ci-dessus fournit un moyen efficace de tester la gestion des erreurs dans Golang. Le choix de la stratégie appropriée dépend de la situation spécifique et de la stratégie de test du projet. 🎜

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