How do you write tests to test functions with variable return values? -


मुझे इस तरह एक साधारण कार्य मिल गया है:

  फ़ंक्शन CreateFileLink () {global $ प्रयोक्ता नाम; वापसी की तारीख ("डी-एम-वाई-जी-जी-आई"); }  

आप फ़ंक्शन की तरह परीक्षण करने के लिए कोड कैसे लिखते हैं, जहां वापसी डेटा चर है?

आप इसे परीक्षण कर सकते हैं यदि आप उस तिथि () फ़ंक्शन पर कोई भी नियंत्रण प्राप्त कर सकते हैं उदाहरण के लिए, इस मामले में, आप केवल ध्यान रखते हैं कि दिनांक फ़ंक्शन को "डी-एम-वाई-जी-आई" के साथ बुलाया जा रहा है; आप वास्तव में इसके उत्पादन के बारे में परवाह नहीं करते हैं शायद ऐसा कुछ:

<पूर्व> फ़ंक्शन CreateFileLink (दिनांकप्रदाता दिनांकप्रदाता) {वैश्विक $ उपयोगकर्ता नाम; वापसी की तारीख Provider.date ("डी-एम-वाई-जी-आई"); }

क्षमा करें, मुझे यह भी पता नहीं है कि यह भाषा क्या है, लेकिन उम्मीद है कि आप मेरा अंक देख सकते हैं। उत्पादन कोड में, आप इसे करने के द्वारा इसे कहते हैं:

<प्री> दिनांकप्रदाता मानक मानक प्रदाता = नया दिनांकप्रदाता () {दिनांक तिथि (स्ट्रिंग स्ट्र) {वापसी की तारीख (एसआर); }}; CreateFileLink (standardDateProvider);

लेकिन आपके परीक्षण में, आप एक वैकल्पिक कार्यान्वयन प्रदान कर सकते हैं जो त्रुटि को फेंक देगा यदि आपके द्वारा अपेक्षित इनपुट नहीं है:

  DateProvider mockProvider = नया दिनांकप्रदाता () {तारीख की तारीख (स्ट्रिंग स्ट्रेट) {यदि (str! = "Dmygi") अपवाद फेंक (); वापसी "सफलता"; }}  

Comments