Test des scénarios os.Exit dans Go
Dans Go, la fonction os.Exit met fin à l'exécution du programme en cours, ce qui rend le test difficile scénarios impliquant la fin du programme. Une approche pour résoudre ce problème consiste à utiliser un processus distinct et des vérifications de sous-processus.
Exemple :
Considérez la fonction suivante :
func doomed() { os.Exit(1) }
Pour tester cette fonction, nous créons un scénario de test distinct et appelons la fonction dans un processus distinct.
Test Cas :
import ( "os" "os/exec" "testing" ) func TestDoomed(t *testing.T) { if os.Getenv("BE_DOOMED") == "1" { doomed() return } cmd := exec.Command(os.Args[0], "-test.run=TestDoomed") cmd.Env = append(os.Environ(), "BE_DOOMED=1") err := cmd.Run() if e, ok := err.(*exec.ExitError); ok && !e.Success() { return } t.Fatalf("process ran with err %v, want exit status 1", err) }
Dans ce cas de test :
Cette approche nous permet d'isoler l'appel os.Exit dans un processus distinct, garantissant qu'il n'affecte pas les autres tests.
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!