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

क्लीन कोड को समझना: यूनिट टेस्ट ⚡

2024-08-31 को प्रकाशित
ब्राउज़ करें:711

Understanding Clean Code: Unit Tests ⚡

सॉफ्टवेयर विकास में, यूनिट परीक्षण एक महत्वपूर्ण अभ्यास है जो आपके कोड की शुद्धता सुनिश्चित करने में मदद करता है।

क्लीन कोड का अध्याय 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 में उल्लिखित सिद्धांतों का पालन करके, आप यह सुनिश्चित कर सकते हैं कि आपके परीक्षण विश्वसनीय, समझने योग्य और मूल्यवान हैं।

इन प्रथाओं को अपने जावास्क्रिप्ट कोड में लागू करने से न केवल आपके परीक्षणों की गुणवत्ता में सुधार होगा, बल्कि अधिक मजबूत और रखरखाव योग्य कोडबेस में भी योगदान मिलेगा।

हैप्पी कोडिंग!

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/alisamir/understand-clean-code-unit-tests-5d1a?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3