Maison >développement back-end >Golang >Comment tester la sortie des fonctions qui utilisent la connexion dans Go ?

Comment tester la sortie des fonctions qui utilisent la connexion dans Go ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-22 08:18:12489parcourir

How to Test Output from Functions that Use Logging in Go?

Comment tester la sortie des fonctions qui utilisent la journalisation dans les tests Go

Lors du test d'une fonction qui utilise des mécanismes de journalisation tels que fmt.Println( ) ou log.Print(), il devient nécessaire d'accéder à la sortie générée par ces fonctions dans le test.

Pour y parvenir, vous pouvez suivre ces étapes :

Dans votre fichier de test, tel que readbyte_test.go, utilisez bytes.Buffer et log.SetOutput() pour rediriger la sortie des fonctions de journalisation vers un tampon :

import (
    "bytes"
    "log"
    "os"
    "testing"
)

func TestReadByte(t *testing.T) {
    var buf bytes.Buffer
    log.SetOutput(&buf)
    defer func() {
        log.SetOutput(os.Stderr)
    }()
    readByte()
    t.Log(buf.String())
}

N'oubliez pas de restaurer la sortie du journal sur os.Stderr dans une fonction defer pour éviter toute interférence potentielle avec d'autres tests ou code ultérieur.

En appelant readByte() puis en enregistrant le contenu du tampon à l'aide de t.Log(), vous pouvez examiner la sortie réelle générée par la fonction testée. Cette technique permet de vérifier les messages d'erreur attendus ou toute autre information journalisée sans modifier le code de la fonction elle-même.

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