सॉफ्टवेयर विकास में, यूनिट परीक्षण एक महत्वपूर्ण अभ्यास है जो आपके कोड की शुद्धता सुनिश्चित करने में मदद करता है।
क्लीन कोड का अध्याय 9: एजाइल सॉफ्टवेयर क्राफ्ट्समैनशिप की एक पुस्तिका, जिसका शीर्षक "यूनिट टेस्ट" है, स्वच्छ और प्रभावी यूनिट परीक्षण लिखने के सिद्धांतों और प्रथाओं पर प्रकाश डालता है।
इस लेख में, हम अध्याय से मुख्य निष्कर्षों का सारांश देंगे और इन अवधारणाओं को स्पष्ट करने के लिए जावास्क्रिप्ट उदाहरण प्रदान करेंगे।
यूनिट परीक्षण में आपके कोड की व्यक्तिगत इकाइयों या घटकों के लिए परीक्षण लिखना शामिल है ताकि यह सत्यापित किया जा सके कि वे अपेक्षा के अनुरूप कार्य करते हैं। इकाई परीक्षणों के प्राथमिक लक्ष्य हैं:
1- बग्स का शीघ्र पता लगाएं: विकास के दौरान मुद्दों को उत्पादन तक पहुंचने से पहले पकड़ें।
2- रिफैक्टरिंग की सुविधा: सुनिश्चित करें कि आपके कोड में परिवर्तन मौजूदा कार्यक्षमता को न तोड़ें।
3- दस्तावेज़ कोड व्यवहार: आपके कोड का उपयोग कैसे किया जाना है इसके लिए दस्तावेज़ के रूप में कार्य करें।
प्रत्येक इकाई परीक्षण को कार्यक्षमता के एक पहलू पर ध्यान केंद्रित करना चाहिए। इससे परीक्षणों को समझना और बनाए रखना आसान हो जाता है। यदि कोई परीक्षण विफल हो जाता है, तो आपको ठीक-ठीक पता चल जाएगा कि समस्या कहां है।
function add(a, b) { return a b; } // Test case for the add function function testAdd() { // Test adding positive numbers assertEqual(add(2, 3), 5, '2 3 should be 5'); // Test adding negative numbers assertEqual(add(-1, -1), -2, '-1 -1 should be -2'); } // A simple assertion function function assertEqual(actual, expected, message) { if (actual !== expected) { throw new Error(message); } }
आपके परीक्षण पढ़ने और समझने में आसान होने चाहिए। अपने परीक्षण कार्यों और स्पष्ट दावों के लिए वर्णनात्मक नामों का उपयोग करें। इससे दूसरों को (और स्वयं को) यह तुरंत समझने में मदद मिलती है कि प्रत्येक परीक्षण क्या सत्यापित कर रहा है।
function isEven(number) { return number % 2 === 0; } // Descriptive test function function testIsEven() { assertEqual(isEven(4), true, '4 should be even'); assertEqual(isEven(5), false, '5 should be odd'); }
परीक्षण मामलों के नामों में यह वर्णन होना चाहिए कि वे क्या परीक्षण कर रहे हैं। यह आपके परीक्षणों की पठनीयता और रखरखाव को बढ़ाता है।
function calculateTotalPrice(items) { return items.reduce((total, item) => total item.price, 0); } // Descriptive test case names function testCalculateTotalPrice() { assertEqual(calculateTotalPrice([{ price: 10 }, { price: 20 }]), 30, 'Total price should be 30 for items costing 10 and 20'); assertEqual(calculateTotalPrice([{ price: 5 }]), 5, 'Total price should be 5 for a single item costing 5'); }
प्रत्येक परीक्षण दूसरों से स्वतंत्र होना चाहिए। जो परीक्षण साझा स्थिति पर निर्भर करते हैं, वे परतदार परीक्षण का कारण बन सकते हैं और डिबगिंग को कठिन बना सकते हैं।
function multiply(a, b) { return a * b; } // Independent test cases function testMultiply() { assertEqual(multiply(2, 3), 6, '2 * 3 should be 6'); assertEqual(multiply(0, 10), 0, '0 * 10 should be 0'); }
मॉक्स और स्टब्स निर्भरता का अनुकरण करके परीक्षण के तहत कोड की इकाई को अलग करने में मदद कर सकते हैं। हालाँकि, अत्यधिक जटिल परीक्षणों से बचने के लिए उनका विवेकपूर्वक उपयोग करें।
// Example of using a mock for a database call function getUser(id) { // Imagine this function makes a database call return database.getUserById(id); } function testGetUser() { const mockDatabase = { getUserById: (id) => ({ id, name: 'John Doe' }), }; const result = getUser(1, mockDatabase); assertEqual(result.name, 'John Doe', 'User name should be John Doe'); }
अपने यूनिट परीक्षणों को नियमित रूप से निष्पादित करना सुनिश्चित करने के लिए उन्हें चलाने को स्वचालित करें। जब भी परिवर्तन किए जाते हैं तो सतत एकीकरण (सीआई) उपकरण आपके परीक्षणों को स्वचालित रूप से चलाने में मदद कर सकते हैं।
यदि आप जेस्ट जैसे परीक्षण ढांचे का उपयोग कर रहे हैं, तो आप अपने पैकेज में एक स्क्रिप्ट सेट कर सकते हैं।json:
"scripts": { "test": "jest" }
एनपीएम टेस्ट चलाने से आपके सभी परीक्षण निष्पादित होंगे और उनकी स्थिति पर फीडबैक मिलेगा।
उच्च गुणवत्ता वाले कोड को बनाए रखने के लिए स्वच्छ और प्रभावी इकाई परीक्षण लिखना आवश्यक है।
क्लीन कोड के अध्याय 9 में उल्लिखित सिद्धांतों का पालन करके, आप यह सुनिश्चित कर सकते हैं कि आपके परीक्षण विश्वसनीय, समझने योग्य और मूल्यवान हैं।
इन प्रथाओं को अपने जावास्क्रिप्ट कोड में लागू करने से न केवल आपके परीक्षणों की गुणवत्ता में सुधार होगा, बल्कि अधिक मजबूत और रखरखाव योग्य कोडबेस में भी योगदान मिलेगा।
हैप्पी कोडिंग!
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3