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!