Kuboresha na Kuandaa Majaribio Mocha na Chai

Katika mchakato wa ukuzaji wa programu, kuboresha na kupanga majaribio ni muhimu ili kuhakikisha usahihi na ufanisi katika awamu ya majaribio. Katika makala haya, tutachunguza jinsi ya kuboresha na kupanga majaribio na Mocha katika Chai Node.js.

Kuboresha na kupanga majaribio huboresha mchakato wa majaribio, hupunguza hitilafu, na huongeza kutegemewa kwa programu yako. Kwa kutekeleza mbinu hizi, unaweza kudhibiti na kutekeleza majaribio kwa ufanisi katika mradi wako wa Node.js kwa kutumia Mocha na Chai.

 

Shirika la Mtihani:

  • Kupanga majaribio kulingana na utendaji: Kupanga majaribio kulingana na utendakazi hurahisisha udhibiti na kutambua malengo ya majaribio kwa kila kipengele mahususi katika mradi wako.
  • Kutumia maelezo yaliyowekwa kwenye viota: Tumia maelezo yaliyowekwa ili kuunda muundo wa daraja kwa ajili ya kuandaa majaribio. Hii husaidia kudumisha muundo wazi na unaoweza kusomeka kwa kikundi chako cha majaribio.

 

Kutumia ndoano kutekeleza kazi za kusanidi na kubomoa kabla na baada ya majaribio

  • Kutumia kulabu: Mocha hutoa kulabu kama vile before, after, beforeEach, na afterEach kufanya shughuli za kabla na baada ya jaribio. Kutumia ndoano husaidia kuokoa muda na kuboresha utendaji wa jumla wa majaribio.
  • Matumizi skip na only maagizo: skip Maagizo hukuruhusu kuruka majaribio yasiyo ya lazima wakati wa ukuzaji. Maagizo only huwezesha kufanya majaribio maalum, ambayo ni muhimu wakati unahitaji tu kujaribu sehemu ndogo ya codebase.

Mfano:

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  
    });  
  });  
});  

 

Kupanga majaribio na kutumia vizuizi vya kuelezea kwa shirika

Ili kupanga na kupanga majaribio pamoja, tunaweza kutumia describe vizuizi katika mfumo wa majaribio kama vile Mocha. Kizuizi describe huturuhusu kupanga majaribio yanayohusiana kulingana na mada au lengo mahususi.

Hapa kuna mfano wa kutumia describe vitalu kupanga majaribio yanayohusiana na Calculator kitu:

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');  
    });  
  });  
});  

Katika mfano hapo juu, tunatumia describe vitalu kwa majaribio ya kikundi yanayohusiana na kila njia ya Calculator kitu. Pia tunatumia beforeEach kizuizi kuunda Calculator kipengee kipya kabla ya kufanya kila jaribio.

Kwa kutumia describe vitalu, tunaweza kupanga na kupanga majaribio kwa njia iliyo wazi na iliyopangwa, na kuifanya iwe rahisi kuelewa na kudhibiti msimbo wa majaribio.

 

Kubinafsisha mchakato wa jaribio na programu-jalizi na waandishi wa habari

Tunapotumia mifumo ya majaribio kama Mocha na Chai, tunaweza kubinafsisha mchakato wa majaribio kwa kutumia programu-jalizi na waandishi wa habari. Hii hapa ni baadhi ya mifano ya jinsi ya kutumia programu-jalizi na waandishi wa habari ili kubinafsisha mchakato wa majaribio:

  1. Mocha programu-jalizi : Mocha inasaidia matumizi ya programu-jalizi kupanua vipengele vyake. Kwa mfano, unaweza kutumia mocha-parallel-tests kufanya majaribio kwa wakati mmoja, ambayo inaweza kuongeza kasi ya utekelezaji. Unaweza kusakinisha programu-jalizi hii kupitia npm kisha uitumie kwenye Mocha faili yako ya usanidi.

  2. Chai programu-jalizi : Chai pia hutoa programu-jalizi ili kupanua vipengele vyake. Kwa mfano, unaweza kutumia chai-http kujaribu maombi ya HTTP katika majaribio yako. Vile vile, unasakinisha programu-jalizi hii kupitia npm kisha uitumie kwenye faili zako za majaribio.

  3. Waandishi : Mocha inasaidia aina mbalimbali za wanahabari ili kuonyesha matokeo ya mtihani. Ripota maarufu ni mocha-reporter, ambayo hutoa miundo tofauti ya ripoti kama vile spec, nukta, na zaidi. Unaweza kubainisha mwandishi wa habari unayotaka kutumia kupitia chaguo za mstari wa amri au katika faili ya usanidi.

Kwa mfano, kutumia mocha-reporter mwandishi wa habari, unaweza kutekeleza amri ifuatayo:

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

Hii itaendesha majaribio kwenye tests saraka na kuonyesha matokeo kwa kutumia mocha-reporter ripota.

Kwa kutumia programu-jalizi na wanahabari, unaweza kubinafsisha na kupanua vipengele vya Mocha na Chai kutosheleza mahitaji ya majaribio ya mradi wako.