Mengoptimumkan dan Mengatur Ujian dengan Mocha dan Chai

Dalam proses pembangunan perisian, pengoptimuman dan penyusunan ujian adalah penting untuk memastikan ketepatan dan kecekapan dalam fasa ujian. Dalam artikel ini, kami akan meneroka cara mengoptimumkan dan mengatur ujian dengan Mocha dan Chai dalam Node.js.

Mengoptimumkan dan mengatur ujian meningkatkan proses ujian, mengurangkan ralat dan meningkatkan kebolehpercayaan aplikasi anda. Dengan melaksanakan teknik ini, anda boleh mengurus dan melaksanakan ujian dengan berkesan dalam projek Node.js anda menggunakan Mocha dan Chai.

 

Organisasi Ujian:

  • Mengkategorikan ujian mengikut kefungsian: Mengatur ujian berdasarkan kefungsian menjadikannya lebih mudah untuk mengurus dan mengenal pasti matlamat ujian untuk setiap ciri khusus dalam projek anda.
  • Menggunakan nested describes: Gunakan nested describes untuk mencipta struktur hierarki untuk mengatur ujian. Ini membantu mengekalkan struktur yang jelas dan boleh dibaca untuk suite ujian anda.

 

Menggunakan cangkuk untuk melaksanakan tugasan persediaan dan pembongkaran sebelum dan selepas ujian

  • Menggunakan cangkuk: Mocha menyediakan cangkuk seperti before, after, beforeEach, dan afterEach untuk melaksanakan operasi pra dan ujian pasca. Menggunakan cangkuk membantu menjimatkan masa dan meningkatkan prestasi keseluruhan ujian.
  • Menggunakan skip dan only arahan: skip Arahan membolehkan anda melangkau ujian yang tidak perlu semasa pembangunan. Arahan tersebut only membolehkan menjalankan ujian khusus, yang berguna apabila anda hanya perlu menguji sebahagian kecil pangkalan kod.

Contoh:

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

 

Mengelompokkan ujian dan menggunakan blok huraikan untuk organisasi

Untuk menyusun dan mengumpulkan ujian bersama-sama, kita boleh menggunakan describe blok dalam rangka kerja ujian seperti Mocha. Blok tersebut describe membolehkan kami mengumpulkan ujian berkaitan berdasarkan topik atau objektif tertentu.

Berikut ialah contoh menggunakan describe blok untuk mengatur ujian yang berkaitan dengan Calculator objek:

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

Dalam contoh di atas, kami menggunakan describe blok untuk mengumpulkan ujian yang berkaitan dengan setiap kaedah objek Calculator. Kami juga menggunakan beforeEach blok untuk mencipta objek baharu Calculator sebelum menjalankan setiap ujian.

Dengan menggunakan describe blok, kami boleh menyusun dan mengumpulkan ujian dengan cara yang jelas dan tersusun, menjadikannya mudah untuk memahami dan mengurus kod ujian.

 

Menyesuaikan proses ujian dengan pemalam dan wartawan

Apabila menggunakan rangka kerja ujian seperti Mocha dan Chai, kami boleh menyesuaikan proses ujian dengan menggunakan pemalam dan wartawan. Berikut ialah beberapa contoh cara menggunakan pemalam dan pelapor untuk menyesuaikan proses ujian:

  1. Mocha pemalam : Mocha menyokong penggunaan pemalam untuk memanjangkan cirinya. Sebagai contoh, anda boleh gunakan mocha-parallel-tests untuk menjalankan ujian secara serentak, yang boleh mempercepatkan pelaksanaan. Anda boleh memasang pemalam ini melalui npm dan kemudian menggunakannya dalam Mocha fail konfigurasi anda.

  2. Chai pemalam : Chai juga menyediakan pemalam untuk memanjangkan cirinya. Sebagai contoh, anda boleh gunakan chai-http untuk menguji permintaan HTTP dalam ujian anda. Begitu juga, anda memasang pemalam ini melalui npm dan kemudian menggunakannya dalam fail ujian anda.

  3. Wartawan : Mocha menyokong pelbagai jenis wartawan untuk memaparkan keputusan ujian. Wartawan yang popular ialah mocha-reporter, yang menyediakan format laporan yang berbeza seperti spec, dot dan banyak lagi. Anda boleh menentukan pelapor yang anda mahu gunakan melalui pilihan baris arahan atau dalam fail konfigurasi.

Sebagai contoh, untuk menggunakan mocha-reporter wartawan, anda boleh menjalankan arahan berikut:

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

Ini akan menjalankan ujian dalam tests direktori dan memaparkan keputusan menggunakan mocha-reporter wartawan.

Dengan menggunakan pemalam dan wartawan, anda boleh menyesuaikan dan memanjangkan ciri Mocha dan Chai untuk memenuhi keperluan ujian projek anda.