"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > गो में समान हस्ताक्षरों के साथ एकाधिक कार्यों का कुशलतापूर्वक परीक्षण करने के लिए प्रतिबिंब का उपयोग कैसे किया जा सकता है?

गो में समान हस्ताक्षरों के साथ एकाधिक कार्यों का कुशलतापूर्वक परीक्षण करने के लिए प्रतिबिंब का उपयोग कैसे किया जा सकता है?

2024-11-16 को प्रकाशित
ब्राउज़ करें:248

How Can Reflection Be Used to Efficiently Test Multiple Functions with Similar Signatures in Go?

गो में फ़ंक्शन यूनिट परीक्षण के लिए प्रतिबिंब का उपयोग करना

समान हस्ताक्षर और रिटर्न मान के साथ कई फ़ंक्शन का परीक्षण करते समय, प्रत्येक फ़ंक्शन के लिए अलग-अलग परीक्षण लिखना कठिन होता है। गो में, प्रतिबिंब सामूहिक रूप से इन कार्यों का परीक्षण करने के लिए एक समाधान प्रदान कर सकता है।

समस्या अवलोकन

निम्नलिखित हस्ताक्षर के साथ कार्यों के एक सेट (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