Go에서 os.Exit 시나리오 테스트
os.Exit()를 호출하는 Go 함수를 테스트할 때 이를 방지하기 위한 고유한 접근 방식이 필요합니다. 이는 후속 테스트를 방해하지 않도록 합니다.
이 문제를 해결하려면 다음을 고려하세요. 코드:
func doomed() { os.Exit(1) }
Go 테스트를 사용하여 os.Exit 동작을 올바르게 테스트하는 방법
이 함수의 종료 동작을 테스트하려면 다음에 설명된 기술을 활용할 수 있습니다. Go 팀의 핵심 멤버인 Andrew Gerrand:
테스트 코드 예시:
package main import ( "fmt" "os" "os/exec" "testing" ) func Crasher() { fmt.Println("Going down in flames!") os.Exit(1) } func TestCrasher(t *testing.T) { if os.Getenv("BE_CRASHER") == "1" { Crasher() return } cmd := exec.Command(os.Args[0], "-test.run=TestCrasher") cmd.Env = append(os.Environ(), "BE_CRASHER=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) }
테스트 프로세스와 테스트 프로세스를 분리하여 환경 변수를 사용하여 실행을 제어하면 다른 테스트에 영향을 주지 않고 Go 테스트 모음에서 os.Exit 시나리오를 효과적으로 테스트할 수 있습니다.
위 내용은 Go 테스트 스위트에서 'os.Exit' 동작을 어떻게 테스트합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!