मोचा और चाय के साथ परीक्षणों को अनुकूलित और व्यवस्थित करना

सॉफ़्टवेयर विकास प्रक्रिया में, परीक्षण चरण में सटीकता और दक्षता सुनिश्चित करने के लिए परीक्षणों को अनुकूलित और व्यवस्थित करना महत्वपूर्ण है। इस लेख में, हम यह पता लगाएंगे कि Node.js में मोचा और चाय के साथ परीक्षणों को कैसे अनुकूलित और व्यवस्थित किया जाए।

परीक्षणों को अनुकूलित और व्यवस्थित करने से परीक्षण प्रक्रिया में सुधार होता है, त्रुटियाँ कम होती हैं और आपके एप्लिकेशन की विश्वसनीयता बढ़ती है। इन तकनीकों को लागू करके, आप मोचा और चाय का उपयोग करके अपने Node.js प्रोजेक्ट में परीक्षणों को प्रभावी ढंग से प्रबंधित और निष्पादित कर सकते हैं।

 

परीक्षण संगठन:

  • कार्यक्षमता के आधार पर परीक्षणों को वर्गीकृत करना: कार्यक्षमता के आधार पर परीक्षणों को व्यवस्थित करने से आपके प्रोजेक्ट में प्रत्येक विशिष्ट सुविधा के लिए परीक्षण लक्ष्यों को प्रबंधित करना और पहचानना आसान हो जाता है।
  • नेस्टेड वर्णनों का उपयोग करें: परीक्षणों के आयोजन के लिए एक पदानुक्रमित संरचना बनाने के लिए नेस्टेड वर्णनों का उपयोग करें। यह आपके परीक्षण सूट के लिए एक स्पष्ट और पठनीय संरचना बनाए रखने में मदद करता है।

 

परीक्षण से पहले और बाद में सेटअप और टियरडाउन कार्य करने के लिए हुक का उपयोग करना

  • हुक का उपयोग: मोचा परीक्षण से पहले और बाद के ऑपरेशन करने के लिए before, after, beforeEach, जैसे हुक प्रदान करता है । afterEachहुक का उपयोग करने से समय बचाने और परीक्षणों के समग्र प्रदर्शन में सुधार करने में मदद मिलती है।
  • उपयोग skipऔर onlyनिर्देश: skipनिर्देश आपको विकास के दौरान अनावश्यक परीक्षणों को छोड़ने की अनुमति देता है। निर्देश onlyविशिष्ट परीक्षण चलाने में सक्षम बनाता है, जो तब उपयोगी होता है जब आपको कोडबेस के केवल एक छोटे हिस्से का परीक्षण करने की आवश्यकता होती है।

उदाहरण:

describe('Calculator', () => {
  beforeEach(() => {
    // Set up data for all tests within this describe block
  });

  afterEach(() => {
    // Clean up after running all tests within this describe block
  });

  describe('Addition', () => {
    it('should return the correct sum', () => {
      // Test addition operation
    });

    it('should handle negative numbers', () => {
      // Test addition with negative numbers
    });
  });

  describe('Subtraction', () => {
    it('should return the correct difference', () => {
      // Test subtraction operation
    });

    it('should handle subtracting a larger number from a smaller number', () => {
      // Test subtraction when subtracting a larger number from a smaller number
    });
  });
});

 

परीक्षणों को समूहीकृत करना और संगठन के लिए वर्णन ब्लॉकों का उपयोग करना

परीक्षणों को एक साथ व्यवस्थित और समूहित करने के लिए, हम describeमोचा जैसे परीक्षण ढांचे में ब्लॉक का उपयोग कर सकते हैं। ब्लॉक describeहमें किसी विशिष्ट विषय या उद्देश्य के आधार पर संबंधित परीक्षणों को समूहीकृत करने की अनुमति देता है।

describeकिसी वस्तु से संबंधित परीक्षणों को व्यवस्थित करने के लिए ब्लॉक का उपयोग करने का एक उदाहरण यहां दिया गया है Calculator:

const { expect } = require('chai');

class Calculator {
  add(a, b) {
    return a + b;
  }

  subtract(a, b) {
    return a - b;
  }

  multiply(a, b) {
    return a * b;
  }

  divide(a, b) {
    if (b === 0) {
      throw new Error('Cannot divide by zero');
    }
    return a / b;
  }
}

describe('Calculator', () => {
  let calculator;

  beforeEach(() => {
    calculator = new Calculator();
  });

  describe('add()', () => {
    it('should return the sum of two numbers', () => {
      const result = calculator.add(5, 3);
      expect(result).to.equal(8);
    });
  });

  describe('subtract()', () => {
    it('should return the difference of two numbers', () => {
      const result = calculator.subtract(5, 3);
      expect(result).to.equal(2);
    });
  });

  describe('multiply()', () => {
    it('should return the product of two numbers', () => {
      const result = calculator.multiply(5, 3);
      expect(result).to.equal(15);
    });
  });

  describe('divide()', () => {
    it('should return the quotient of two numbers', () => {
      const result = calculator.divide(6, 3);
      expect(result).to.equal(2);
    });

    it('should throw an error when dividing by zero', () => {
      expect(() => calculator.divide(6, 0)).to.throw('Cannot divide by zero');
    });
  });
});

उपरोक्त उदाहरण में, हम ऑब्जेक्ट describeकी प्रत्येक विधि से संबंधित समूह परीक्षणों के लिए ब्लॉक का उपयोग करते हैं। Calculatorहम प्रत्येक परीक्षण चलाने से पहले beforeEachएक नई वस्तु बनाने के लिए एक ब्लॉक का भी उपयोग करते हैं।Calculator

ब्लॉक का उपयोग करके describe, हम परीक्षणों को स्पष्ट और संरचित तरीके से व्यवस्थित और समूहित कर सकते हैं, जिससे परीक्षण कोड को समझना और प्रबंधित करना आसान हो जाता है।

 

प्लगइन्स और रिपोर्टर्स के साथ परीक्षण प्रक्रिया को अनुकूलित करना

मोचा और चाय जैसे परीक्षण ढांचे का उपयोग करते समय, हम प्लगइन्स और पत्रकारों का उपयोग करके परीक्षण प्रक्रिया को अनुकूलित कर सकते हैं। परीक्षण प्रक्रिया को अनुकूलित करने के लिए प्लगइन्स और रिपोर्टर्स का उपयोग कैसे करें इसके कुछ उदाहरण यहां दिए गए हैं:

  1. मोचा प्लगइन्स : मोचा अपनी सुविधाओं को बढ़ाने के लिए प्लगइन्स के उपयोग का समर्थन करता है। उदाहरण के लिए, आप mocha-parallel-testsपरीक्षणों को एक साथ चलाने के लिए उपयोग कर सकते हैं, जिससे निष्पादन में तेजी आ सकती है। आप इस प्लगइन को npm के माध्यम से इंस्टॉल कर सकते हैं और फिर इसे अपनी मोचा कॉन्फ़िगरेशन फ़ाइल में उपयोग कर सकते हैं।

  2. चाय प्लगइन्स : चाय अपनी सुविधाओं को बढ़ाने के लिए प्लगइन भी प्रदान करता है। उदाहरण के लिए, आप chai-httpअपने परीक्षणों में HTTP अनुरोधों का परीक्षण करने के लिए उपयोग कर सकते हैं। इसी तरह, आप इस प्लगइन को npm के माध्यम से इंस्टॉल करें और फिर इसे अपनी परीक्षण फ़ाइलों में उपयोग करें।

  3. रिपोर्टर : मोचा परीक्षण परिणाम प्रदर्शित करने के लिए विभिन्न प्रकार के पत्रकारों का समर्थन करता है। एक लोकप्रिय रिपोर्टर है mocha-reporter, जो स्पेक, डॉट और बहुत कुछ जैसे विभिन्न रिपोर्ट प्रारूप प्रदान करता है। आप कमांड लाइन विकल्पों के माध्यम से या कॉन्फ़िगरेशन फ़ाइल में उस रिपोर्टर को निर्दिष्ट कर सकते हैं जिसका आप उपयोग करना चाहते हैं।

उदाहरण के लिए, mocha-reporterरिपोर्टर का उपयोग करने के लिए, आप निम्नलिखित कमांड चला सकते हैं:

mocha --reporter mocha-reporter tests/*.js

यह निर्देशिका में परीक्षण चलाएगा और रिपोर्टर का testsउपयोग करके परिणाम प्रदर्शित करेगा ।mocha-reporter

प्लगइन्स और रिपोर्टर्स का उपयोग करके, आप अपने प्रोजेक्ट की परीक्षण आवश्यकताओं को पूरा करने के लिए मोचा और चाय की सुविधाओं को अनुकूलित और विस्तारित कर सकते हैं।