×

Làm Thế Nào Để Viết Một Unit Test Cho JavaScript?

Viết unit test cho JavaScript là một phương pháp quan trọng để đảm bảo mã nguồn hoạt động đúng như mong đợi. Unit test kiểm tra các đơn vị nhỏ nhất của mã nguồn, thường là các hàm hoặc phương thức riêng lẻ. Dưới đây là hướng dẫn cách viết unit test cho JavaScript bằng cách sử dụng thư viện phổ biến như Jest.

Bước 1: Cài Đặt Jest

Để bắt đầu, bạn cần cài đặt Jest. Nếu bạn đang sử dụng Node.js, bạn có thể cài đặt Jest thông qua npm.

npm install --save-dev jest

Bước 2: Cấu Hình Jest

Thêm cấu hình Jest vào tệp package.json của bạn:

{
  "scripts": {
    "test": "jest"
  }
}

Bước 3: Viết Code Cần Test

Giả sử bạn có một hàm đơn giản cần được kiểm tra:

// math.js
function add(a, b) {
  return a + b;
}

module.exports = add;

Bước 4: Viết Unit Test

Tạo một tệp test cho hàm add vừa viết. Thông thường, các tệp test được đặt trong thư mục __tests__ hoặc có đuôi .test.js.

// math.test.js
const add = require('./math');

test('adds 1 + 2 to equal 3', () => {
  expect(add(1, 2)).toBe(3);
});

Bước 5: Chạy Test

Chạy lệnh test đã cấu hình trong tệp package.json:

npm test

Nếu mọi thứ được cấu hình đúng cách, bạn sẽ thấy kết quả test trong terminal, thông báo rằng test của bạn đã thành công.

Ví Dụ Chi Tiết:

Hàm Cần Kiểm Tra:

// math.js
function add(a, b) {
  return a + b;
}

function subtract(a, b) {
  return a - b;
}

module.exports = { add, subtract };

Tệp Test:

// math.test.js
const { add, subtract } = require('./math');

test('adds 1 + 2 to equal 3', () => {
  expect(add(1, 2)).toBe(3);
});

test('subtracts 5 - 2 to equal 3', () => {
  expect(subtract(5, 2)).toBe(3);
});

Một Số Kỹ Thuật Unit Testing:

  • Mocking: Jest cung cấp các công cụ để mô phỏng các hàm hoặc mô-đun khác mà hàm của bạn phụ thuộc vào.
  • Setup và Teardown: Sử dụng beforeEach, afterEach, beforeAll, và afterAll để thiết lập môi trường test.
  • Snapshots: Jest hỗ trợ snapshot testing để kiểm tra đầu ra của các thành phần UI.
// Example of setup and teardown
beforeEach(() => {
  // Code to run before each test
});

afterEach(() => {
  // Code to run after each test
});

Tổng Quan:

  • Unit Test: Kiểm tra các đơn vị mã nguồn nhỏ nhất.
  • Jest: Một thư viện phổ biến để viết unit test cho JavaScript.
  • Cấu Hình Jest: Cấu hình qua npm và package.json.
  • Viết Test: Tạo các tệp test riêng biệt để kiểm tra các hàm hoặc phương thức.
  • Kỹ Thuật Testing: Sử dụng mocking, setup/teardown, và snapshot để mở rộng khả năng kiểm tra.

Comments