अनुकूलन र संग परीक्षण संगठित Mocha र Chai

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

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

 

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

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

 

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

  • हुकहरू प्रयोग गर्दै: 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 ब्लकहरूलाई परीक्षण ढाँचामा प्रयोग गर्न सक्छौं Mocha । ब्लकले 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 प्लगइनहरू : Mocha यसको सुविधाहरू विस्तार गर्न प्लगइनहरूको प्रयोगलाई समर्थन गर्दछ। उदाहरणका लागि, तपाईं mocha-parallel-tests एकैसाथ परीक्षणहरू चलाउन प्रयोग गर्न सक्नुहुन्छ, जसले कार्यान्वयनलाई गति दिन सक्छ। Mocha तपाइँ यो प्लगइन npm मार्फत स्थापना गर्न सक्नुहुन्छ र त्यसपछि तपाइँको कन्फिगरेसन फाइलमा प्रयोग गर्नुहोस् ।

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

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

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

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

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

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