इस सप्ताह हमें अपने सीएलआई टूल में परीक्षण जोड़ना था। अब तक की सबसे निराशाजनक बात।
मैं टीडीडी (टेस्ट ड्रिवेन डेवलपमेंट) का बहुत बड़ा समर्थक हूं। लगभग हर पीस कोड का परीक्षण किया जाना चाहिए। अपने सह-ऑप के दौरान आधे से अधिक समय मैंने अपने पीआर के लिए परीक्षण लिखने में बिताया। मेरा मानना है कि उस अनुभव ने वास्तव में मुझे परीक्षण की आवश्यकता को समझने में मदद की। मुझे यह देखकर आश्चर्य हुआ कि जेएस और रूबी में परीक्षण ढांचा कितना समान है। मैंने जेस्ट का उपयोग किया जो आरएसपीईसी के समान है जो मैंने अपने सह-ऑप के दौरान उपयोग किया है। http अनुरोध का मज़ाक उड़ाने के लिए मैंने VCR नामक चीज़ के समान नॉक का उपयोग किया।
मेरे सामने मुख्य समस्या यह थी कि मैंने कॉमनजेएस के बजाय ईएसएम का उपयोग किया। जिससे मेरा जीवन बहुत कठिन हो गया। पहला मुद्दा यह था कि jest.mock काम नहीं कर रहा था। कुछ शोध के बाद मुझे एहसास हुआ कि ईएसएम में नकल करने का तरीका अलग है। दुर्भाग्य से दस्तावेज़ों का पालन करने के बाद भी मैं इस पर काम नहीं कर सका। तो, मुझे jest.spyOn करना पड़ा। दूसरी समस्या जिसका मुझे सामना करना पड़ा, वह यह थी कि चूँकि execa child_process में Index.test.js चलता है, हालाँकि चलता है, लेकिन यह कवरेज रिपोर्ट को प्रभावित नहीं करता है। इसलिए मुझे परीक्षण को दोबारा लिखने के लिए jest.spyOn का उपयोग करना पड़ा। मुझे इंडेक्स.जेएस को भी रिफैक्टर करना पड़ा ताकि यह उन झंडों को न ले जाए जिन्हें मैं मजाक में बता रहा हूं। अन्य छोटी समस्या जिसका मुझे सामना करना पड़ा, वह थी jest -c jest.config.mjs के बजाय node --experimental-vm-modules --no-warnings node_modules/jest/bin/jest.js -c jest.config.mjs का उपयोग करना, क्योंकि मैं था ईएसएम का उपयोग करना। मुझे FilepathResolver.test.js का परीक्षण करने के लिए फ़ाइल सिस्टम को दोहराने के लिए मॉक-एफएस का भी उपयोग करना पड़ा क्योंकि सरल jest.spyOn ने इसका पूरी तरह से परीक्षण नहीं किया था। मैं आश्चर्यचकित था कि केवल ईएसएम का उपयोग करने से कितनी बाधाएँ उत्पन्न हुईं और यह दर्शाता है कि जेएस कितनी गड़बड़ है।
बहुत सारी परीक्षण त्रुटियों के बाद मुझे काफी अच्छा कवरेज मिला।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3