Mocha र Chai संग परीक्षणहरू अनुकूलन र व्यवस्थित गर्दै

सफ्टवेयर विकास प्रक्रियामा, परीक्षण चरणमा शुद्धता र दक्षता सुनिश्चित गर्न परीक्षणहरू अनुकूलन र व्यवस्थित गर्न महत्त्वपूर्ण छ। यस लेखमा, हामी Node.js मा Mocha र Chai सँग परीक्षणहरू कसरी अप्टिमाइज र व्यवस्थित गर्ने भनेर अन्वेषण गर्नेछौं।

परीक्षणहरू अनुकूलन र व्यवस्थित गर्नले परीक्षण प्रक्रियामा सुधार गर्छ, त्रुटिहरू कम गर्छ, र तपाईंको आवेदनको विश्वसनीयता बढाउँछ। यी प्रविधिहरू लागू गरेर, तपाईंले Mocha र Chai प्रयोग गरेर आफ्नो Node.js परियोजनामा ​​परीक्षणहरू प्रभावकारी रूपमा व्यवस्थापन र कार्यान्वयन गर्न सक्नुहुन्छ।

 

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

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

 

परीक्षण अघि र पछि सेटअप र टायरडाउन कार्यहरू प्रदर्शन गर्न हुकहरू प्रयोग गर्दै

  • हुकहरू प्रयोग गर्दै: Mocha ले हुकहरू प्रदान गर्दछ जस्तै before, after, beforeEach, र afterEachपूर्व र पोस्ट-परीक्षण सञ्चालनहरू गर्न। हुकको प्रयोगले समय बचत गर्न र परीक्षणको समग्र कार्यसम्पादन सुधार गर्न मद्दत गर्छ।
  • प्रयोग skiponlyनिर्देशनहरू: 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, हामीले परीक्षण कोड बुझ्न र व्यवस्थापन गर्न सजिलो बनाउँदै स्पष्ट र संरचित रूपमा परीक्षणहरू व्यवस्थित र समूहबद्ध गर्न सक्छौं।

 

प्लगइनहरू र रिपोर्टरहरूसँग परीक्षण प्रक्रिया अनुकूलन गर्दै

Mocha र Chai जस्ता परीक्षण फ्रेमवर्कहरू प्रयोग गर्दा, हामी प्लगइनहरू र रिपोर्टरहरू प्रयोग गरेर परीक्षण प्रक्रियालाई अनुकूलित गर्न सक्छौं। यहाँ परीक्षण प्रक्रिया अनुकूलन गर्न प्लगइन र रिपोर्टर कसरी प्रयोग गर्ने केही उदाहरणहरू छन्:

  1. मोचा प्लगइनहरू : मोचाले यसको सुविधाहरू विस्तार गर्न प्लगइनहरूको प्रयोगलाई समर्थन गर्दछ। उदाहरणका लागि, तपाईं mocha-parallel-testsएकैसाथ परीक्षणहरू चलाउन प्रयोग गर्न सक्नुहुन्छ, जसले कार्यान्वयनलाई गति दिन सक्छ। तपाइँ यो प्लगइन npm मार्फत स्थापना गर्न सक्नुहुन्छ र त्यसपछि तपाइँको मोचा कन्फिगरेसन फाइलमा प्रयोग गर्नुहोस्।

  2. Chai प्लगइनहरू : Chai ले यसको सुविधाहरू विस्तार गर्न प्लगइनहरू पनि प्रदान गर्दछ। उदाहरणका लागि, तपाइँ chai-httpतपाइँको परीक्षणहरूमा HTTP अनुरोधहरू परीक्षण गर्न प्रयोग गर्न सक्नुहुन्छ। त्यसै गरी, तपाइँ यो प्लगइन npm मार्फत स्थापना गर्नुहोस् र त्यसपछि तपाइँको परीक्षण फाइलहरूमा प्रयोग गर्नुहोस्।

  3. रिपोर्टरहरू : मोचाले परीक्षण परिणामहरू प्रदर्शन गर्न विभिन्न प्रकारका रिपोर्टरहरूलाई समर्थन गर्दछ। एक लोकप्रिय रिपोर्टर हो mocha-reporter, जसले विभिन्न रिपोर्ट ढाँचाहरू प्रदान गर्दछ जस्तै स्पेक, डट, र थप। तपाईले कमाण्ड लाइन विकल्पहरू वा कन्फिगरेसन फाइलमा प्रयोग गर्न चाहनुभएको रिपोर्टर निर्दिष्ट गर्न सक्नुहुन्छ।

उदाहरणका लागि, रिपोर्टर प्रयोग गर्न mocha-reporter, तपाइँ निम्न आदेश चलाउन सक्नुहुन्छ:

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

यसले डाइरेक्टरीमा परीक्षणहरू चलाउनेछ testsर रिपोर्टर प्रयोग गरेर परिणामहरू प्रदर्शन गर्नेछ mocha-reporter

प्लगइनहरू र रिपोर्टरहरू प्रयोग गरेर, तपाईं आफ्नो परियोजनाको परीक्षण आवश्यकताहरू फिट गर्न Mocha र Chai को सुविधाहरू अनुकूलित र विस्तार गर्न सक्नुहुन्छ।