ฉันกำลังพิจารณาวิธีการเขียนแบบทดสอบเพื่อตรวจสอบว่าโค้ดบางส่วนนั้นตื่นตระหนกหรือไม่? ฉันรู้ว่า 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ตื่นตระหนกและเราฟื้นตัวหรือไม่หรือฟังก์ชั่นไม่ตื่นตระหนกเลย ฉันจะระบุรหัสที่จะข้ามไปได้อย่างไรหากไม่มีความตื่นตระหนกและรหัสใดที่จะดำเนินการหากเกิดความตื่นตระหนก ฉันจะตรวจสอบได้อย่างไรว่าเราหายจากอาการตื่นตระหนกหรือไม่?