Accès aux journaux dans les tests Go
Dans les tests Go, vérifier la sortie du journal d'une fonction peut être difficile, en particulier lorsque la fonction elle-même enregistre l'erreur directement.
Pour capturer la sortie du journal, une solution courante consiste à rediriger la sortie du journal par défaut vers un tampon avant d'exécuter la fonction testée.
Exemple :
Considérez la fonction readByte suivante :
func readByte(/*...*/) { if err != nil { fmt.Println("ERROR") log.Print("Couldn't read first byte") return } }
Pour tester la sortie du journal, nous pouvons utiliser l'approche suivante dans le fichier de test :
package main import ( "bytes" "testing" "github.com/stretchr/testify/assert" ) func TestReadByte(t *testing.T) { var buf bytes.Buffer log.SetOutput(&buf) defer func() { log.SetOutput(os.Stderr) }() readByte() output := buf.String() assert.Contains(t, output, "Couldn't read first byte") }
Dans cet exemple , nous :
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!