私は現在、特定のコードがパニックに陥ったかどうかをチェックするテストを作成する方法を考えていますか?Goがrecover
パニックをキャッチするために使用することは知っていますが、たとえばJavaコードとは異なり、パニックが発生した場合にスキップするコードや、何を持っているかを実際に指定することはできません。したがって、関数がある場合:
func f(t *testing.T) {
defer func() {
if r := recover(); r != nil {
fmt.Println("Recovered in f", r)
}
}()
OtherFunctionThatPanics()
t.Errorf("The code did not panic")
}
OtherFunctionThatPanics
パニックになって回復したのか、機能がまったくパニックにならなかったのか、本当にわかりません。パニックがない場合にスキップするコードと、パニックがある場合に実行するコードを指定するにはどうすればよいですか?回復したパニックがあったかどうかを確認するにはどうすればよいですか?