समान हस्ताक्षर और रिटर्न मान के साथ कई फ़ंक्शन का परीक्षण करते समय, प्रत्येक फ़ंक्शन के लिए अलग-अलग परीक्षण लिखना कठिन होता है। गो में, प्रतिबिंब सामूहिक रूप से इन कार्यों का परीक्षण करने के लिए एक समाधान प्रदान कर सकता है।
निम्नलिखित हस्ताक्षर के साथ कार्यों के एक सेट (Func1, Func2, ...) पर विचार करें:
func YourFunction() (int, error)
लक्ष्य: एक परीक्षण लिखें जो इसके माध्यम से पुनरावृत्त होता है फ़ंक्शंस का सेट, प्रत्येक को कॉल करता है, और विशिष्ट स्थितियों के लिए उनके रिटर्न मानों का परीक्षण करता है। रिसीवर के लिए एक रिफ्लेक्ट.वैल्यू ऑब्जेक्ट बनाकर, हम संबंधित फ़ंक्शन ढूंढ सकते हैं और इसे रिफ्लेक्ट.वैल्यू.मेथोडबायनेम का उपयोग करके कॉल कर सकते हैं। लौटाए गए मान की सत्यता के लिए जांच की जा सकती है। func TestFunc(t *testing.T) { var funcNames = []string{"Func1", "Func2", "Func3"} प्रकार := प्रतिबिंबित.ValueOf(s) // रिसीवर _, fname के लिए := रेंज funcNames { sfunc := stype.MethodByName(fname) ret := sfunc.Call([]reflect.Value{}) वैल := ret[0].Int() त्रुटि := पुनः[1] यदि वैल
ध्यान रखें कि प्रतिबिंब का उपयोग करके एक गैर-मौजूद फ़ंक्शन को कॉल करने से घबराहट होगी। इसे संभालने के लिए, हम आस्थगित कार्यों का उपयोग कर सकते हैं और घबराहट को पकड़ने और अधिक जानकारीपूर्ण त्रुटि संदेश प्रदान करने के लिए पुनर्प्राप्त कर सकते हैं। समान व्यवहार के साथ कई कार्यों का कुशलतापूर्वक परीक्षण करता है, दोहराए जाने वाले परीक्षण कोड की आवश्यकता को कम करता है और हमारे परीक्षणों की मजबूती सुनिश्चित करता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3