மோச்சா மற்றும் சாய் மூலம் சோதனைகளை மேம்படுத்துதல் மற்றும் ஒழுங்கமைத்தல்

மென்பொருள் மேம்பாட்டு செயல்பாட்டில், சோதனை கட்டத்தில் துல்லியம் மற்றும் செயல்திறனை உறுதிப்படுத்த, சோதனைகளை மேம்படுத்துதல் மற்றும் ஒழுங்கமைத்தல் ஆகியவை முக்கியமானதாகும். இந்த கட்டுரையில், Node.js இல் Mocha மற்றும் Chai மூலம் சோதனைகளை எவ்வாறு மேம்படுத்துவது மற்றும் ஒழுங்கமைப்பது என்பதை ஆராய்வோம்.

சோதனைகளை மேம்படுத்துதல் மற்றும் ஒழுங்கமைத்தல் சோதனை செயல்முறையை மேம்படுத்துகிறது, பிழைகளைக் குறைக்கிறது மற்றும் உங்கள் பயன்பாட்டின் நம்பகத்தன்மையை அதிகரிக்கிறது. இந்த நுட்பங்களை செயல்படுத்துவதன் மூலம், Mocha மற்றும் Chai ஐப் பயன்படுத்தி உங்கள் 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, சோதனைக் குறியீட்டைப் புரிந்துகொள்வதையும் நிர்வகிப்பதையும் எளிதாக்கும் வகையில், தெளிவான மற்றும் கட்டமைக்கப்பட்ட முறையில் சோதனைகளை ஒழுங்கமைக்கலாம் மற்றும் குழுவாக்கலாம்.

 

செருகுநிரல்கள் மற்றும் நிருபர்கள் மூலம் சோதனை செயல்முறையைத் தனிப்பயனாக்குதல்

Mocha மற்றும் Chai போன்ற சோதனை கட்டமைப்புகளைப் பயன்படுத்தும் போது, ​​செருகுநிரல்கள் மற்றும் நிருபர்களைப் பயன்படுத்தி சோதனைச் செயல்முறையைத் தனிப்பயனாக்கலாம். சோதனை செயல்முறையைத் தனிப்பயனாக்க செருகுநிரல்கள் மற்றும் நிருபர்களை எவ்வாறு பயன்படுத்துவது என்பதற்கான சில எடுத்துக்காட்டுகள் இங்கே:

  1. மோச்சா செருகுநிரல்கள் : மோச்சா அதன் அம்சங்களை நீட்டிக்க செருகுநிரல்களைப் பயன்படுத்துவதை ஆதரிக்கிறது. எடுத்துக்காட்டாக, நீங்கள் mocha-parallel-testsஒரே நேரத்தில் சோதனைகளை இயக்க பயன்படுத்தலாம், இது செயல்படுத்தலை விரைவுபடுத்தும். நீங்கள் இந்தச் செருகுநிரலை npm வழியாக நிறுவி, உங்கள் Mocha உள்ளமைவு கோப்பில் பயன்படுத்தலாம்.

  2. சாய் செருகுநிரல்கள் : சாய் அதன் அம்சங்களை நீட்டிக்க செருகுநிரல்களையும் வழங்குகிறது. உதாரணமாக, chai-httpஉங்கள் சோதனைகளில் HTTP கோரிக்கைகளை சோதிக்க நீங்கள் பயன்படுத்தலாம். இதேபோல், நீங்கள் இந்த செருகுநிரலை npm வழியாக நிறுவி, உங்கள் சோதனைக் கோப்புகளில் பயன்படுத்தவும்.

  3. நிருபர்கள் : சோதனை முடிவுகளைக் காட்ட மோச்சா பல்வேறு வகையான நிருபர்களை ஆதரிக்கிறது. ஒரு பிரபலமான நிருபர் mocha-reporter, இது ஸ்பெக், டாட் மற்றும் பல போன்ற பல்வேறு அறிக்கை வடிவங்களை வழங்குகிறது. கட்டளை வரி விருப்பங்கள் அல்லது உள்ளமைவு கோப்பில் நீங்கள் பயன்படுத்த விரும்பும் நிருபரை நீங்கள் குறிப்பிடலாம்.

எடுத்துக்காட்டாக, நிருபரைப் பயன்படுத்த mocha-reporter, நீங்கள் பின்வரும் கட்டளையை இயக்கலாம்:

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

இது கோப்பகத்தில் சோதனைகளை இயக்கி tests, ரிப்போர்ட்டரைப் பயன்படுத்தி முடிவுகளைக் காண்பிக்கும் mocha-reporter.

செருகுநிரல்கள் மற்றும் நிருபர்களைப் பயன்படுத்துவதன் மூலம், உங்கள் திட்டத்தின் சோதனைத் தேவைகளுக்கு ஏற்றவாறு மோச்சா மற்றும் சாய் அம்சங்களைத் தனிப்பயனாக்கலாம் மற்றும் நீட்டிக்கலாம்.