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

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

Patricia Arquette
Libérer: 2024-11-22 08:18:12
original
406 Les gens l'ont consulté

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

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal