मैं वर्तमान में विचार कर रहा हूं कि परीक्षणों को कैसे लिखा जाए जो जांचता है कि क्या कोड का एक टुकड़ा घबराया हुआ है? मुझे पता है कि गो recoverपैनिक को पकड़ने के लिए उपयोग करता है, लेकिन जावा कोड के विपरीत, आप वास्तव में यह निर्दिष्ट नहीं कर सकते हैं कि घबराहट की स्थिति में आपको क्या कोड छोड़ देना चाहिए या आपके पास क्या है। तो अगर मेरे पास कोई फ़ंक्शन है:
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हम घबरा गए और हम ठीक हो गए, या यदि फ़ंक्शन बिल्कुल भी घबराया नहीं था। यदि कोई घबराहट नहीं है और घबराहट होने पर किस कोड को निष्पादित करने के लिए मैं किस कोड को छोड़ दूं? मैं कैसे जाँच सकता हूँ कि वहाँ से कुछ घबराहट हुई थी?