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