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