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 afterEachkanggo nindakake operasi pre lan post-test. Nggunakake pancingan mbantu ngirit wektu lan nambah kinerja sakabèhé saka tes.
  • Nggunakake skiplan onlyarahan: skipArahan ngidini sampeyan ngliwati tes sing ora perlu sajrone pangembangan. Arahan kasebut onlymbisakake 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 describepamblokiran ing framework testing kaya Mocha. Blok kasebut describengidini kita nglumpukake tes sing gegandhengan adhedhasar topik utawa tujuan tartamtu.

Iki conto nggunakake describeblok kanggo ngatur tes sing ana gandhengane karo Calculatorobyek:

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 describepamblokiran kanggo klompok tes related kanggo saben cara saka Calculatorobyek. Kita uga nggunakake beforeEachblok kanggo nggawe obyek anyar Calculatorsadurunge nglakokake saben tes.

Kanthi nggunakake describepamblokiran, 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. Plugin Mocha : Mocha ndhukung panggunaan plugin kanggo nambah fitur. Contone, sampeyan bisa nggunakake mocha-parallel-testskanggo mbukak tes bebarengan, kang bisa nyepetake eksekusi. Sampeyan bisa nginstal plugin iki liwat npm banjur gunakake ing file konfigurasi Mocha.

  2. Plugin Chai : Chai uga nyedhiyakake plugin kanggo nambah fitur. Contone, sampeyan bisa nggunakake chai-httpkanggo 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-reporterreporter, sampeyan bisa mbukak printah ing ngisor iki:

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

Iki bakal mbukak tes ing testsdirektori lan nampilake asil nggunakake mocha-reporterreporter.

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