Go テストでロギングを使用する関数からの出力をテストする方法
fmt.Println( などのロギング メカニズムを利用する関数をテストする場合) ) または log.Print() を使用すると、それらの関数によって生成された出力にアクセスする必要があります。 test.
これを実現するには、次の手順に従います。
readbyte_test.go などのテスト ファイルで、bytes.Buffer と log.SetOutput() を使用して、ログ関数のバッファへの出力:
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()) }
defer 関数でログ出力を os.Stderr に復元することを忘れないでください。他のテストや後続のコードとの潜在的な干渉を回避します。
readByte() を呼び出し、t.Log() を使用してバッファの内容をログに記録することで、テスト対象の関数によって生成された実際の出力を調べることができます。この手法を使用すると、関数のコード自体を変更せずに、予想されるエラー メッセージやその他のログ情報を検証できます。
以上がGo でログを使用する関数からの出力をテストするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。