테스트 중인 함수에서 생성된 로그를 확인하려면 이를 캡처하고 검사하는 것이 필수적입니다. 이는 출력을 리디렉션하고 예상 값과 비교하여 달성할 수 있습니다.
제공된 예에서 readByte 함수는 로그 메시지를 표준 출력으로 인쇄합니다. 테스트에서 이러한 메시지를 캡처하려면 아래와 같이 bytes.Buffer를 활용할 수 있습니다.
package main import ( "bytes" "fmt" "io" "log" "os" "testing" ) func readByte(/*...*/) { // ... if err != nil { fmt.Println("ERROR") log.Print("Couldn't read first byte") return } // ... } func TestReadByte(t *testing.T) { var buf bytes.Buffer log.SetOutput(&buf) defer func() { log.SetOutput(os.Stderr) }() readByte() t.Log(buf.String()) }
설명:
buf의 내용을 검토하면 예상한 로그가 readByte 함수에 의해 생성되었는지 확인할 수 있습니다. 이 접근 방식을 사용하면 테스트 중인 함수의 코드를 수정하지 않고도 로그 출력을 테스트할 수 있습니다.
위 내용은 Go 테스트에서 로그를 캡처하고 검사하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!