Ngoptimalake lan Ngatur Tes karo Mocha lan Chai

Ing proses pangembangan piranti lunak, ngoptimalake lan ngatur tes penting kanggo njamin akurasi lan efisiensi ing tahap tes. Ing artikel iki, kita bakal njelajah carane ngoptimalake lan ngatur tes karo Mocha lan Chai ing Node.js.

Ngoptimalake lan ngatur tes nambah proses tes, nyuda kesalahan, lan nambah linuwih aplikasi sampeyan. Kanthi ngetrapake teknik kasebut, sampeyan bisa ngatur lan nglakokake tes kanthi efektif ing proyek Node.js nggunakake Mocha lan Chai.

 

Organisasi Tes:

  • Nggolongake tes miturut fungsi: Ngatur tes adhedhasar fungsionalitas nggawe luwih gampang ngatur lan ngenali tujuan tes kanggo saben fitur tartamtu ing proyek sampeyan.
  • Nggunakake nested describes: Gunakake nested describes kanggo nggawe struktur hirarkis kanggo ngatur tes. Iki mbantu njaga struktur sing jelas lan bisa diwaca kanggo suite tes sampeyan.

 

Nggunakake pancingan kanggo nindakake tugas persiyapan lan teardown sadurunge lan sawise tes

  • Nggunakke pancingan: Mocha nyedhiyakake pancingan kayata before, after, beforeEach, lan afterEach kanggo nindakake operasi pre lan post-test. Nggunakake pancingan mbantu ngirit wektu lan nambah kinerja sakabèhé saka tes.
  • Nggunakake skip lan only arahan: skip Arahan ngidini sampeyan ngliwati tes sing ora perlu sajrone pangembangan. Arahan kasebut only mbisakake tes tartamtu, sing migunani yen sampeyan mung kudu nyoba bagean cilik saka basis kode.

Tuladha:

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

 

Tes klompok lan nggunakake njlèntrèhaké pamblokiran kanggo organisasi

Kanggo ngatur lan klompok tes bebarengan, kita bisa nggunakake describe pamblokiran ing framework testing kaya Mocha. Blok kasebut describe ngidini kita nglumpukake tes sing gegandhengan adhedhasar topik utawa tujuan tartamtu.

Iki conto nggunakake describe blok kanggo ngatur tes sing ana gandhengane karo Calculator obyek:

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

Ing conto ing ndhuwur, kita nggunakake describe pamblokiran kanggo klompok tes related kanggo saben cara saka Calculator obyek. Kita uga nggunakake beforeEach blok kanggo nggawe obyek anyar Calculator sadurunge nglakokake saben tes.

Kanthi nggunakake describe pamblokiran, kita bisa ngatur lan klompok tes kanthi cara sing jelas lan terstruktur, supaya gampang dingerteni lan ngatur kode tes.

 

Ngatur proses tes nganggo plugin lan wartawan

Nalika nggunakake kerangka testing kaya Mocha lan Chai, kita bisa ngatur proses testing kanthi nggunakake plugins lan reporter. Ing ngisor iki sawetara conto carane nggunakake plugin lan wartawan kanggo ngatur proses tes:

  1. Mocha plugins : Mocha ndhukung nggunakake plugin kanggo ngluwihi fitur sawijining. Contone, sampeyan bisa nggunakake mocha-parallel-tests kanggo mbukak tes bebarengan, kang bisa nyepetake eksekusi. Sampeyan bisa nginstal plugin iki liwat npm banjur gunakake ing Mocha file konfigurasi sampeyan.

  2. Chai plugins : Chai uga nyedhiyakake plugins kanggo nambah fitur. Contone, sampeyan bisa nggunakake chai-http kanggo nyoba panjalukan HTTP ing tes sampeyan. Kajaba iku, sampeyan nginstal plugin iki liwat npm banjur gunakake ing file tes sampeyan.

  3. Wartawan : Mocha ndhukung macem-macem jinis wartawan kanggo nampilake asil tes. Wartawan populer yaiku mocha-reporter, sing nyedhiyakake macem-macem format laporan kayata spec, dot, lan liya-liyane. Sampeyan bisa nemtokake reporter sing pengin digunakake liwat opsi baris perintah utawa ing file konfigurasi.

Contone, kanggo nggunakake mocha-reporter reporter, sampeyan bisa mbukak printah ing ngisor iki:

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

Iki bakal mbukak tes ing tests direktori lan nampilake asil nggunakake mocha-reporter reporter.

Kanthi nggunakake plugin lan wartawan, sampeyan bisa ngatur lan ngluwihi fitur Mocha lan Chai cocog karo kabutuhan tes proyek sampeyan.