VIẾT UNIT TEST TRONG JAVASCRIPT VỚI JEST: HƯỚNG DẪN SIÊU XỊN
Hội các bạn ơi, hôm nay tụi mình sẽ cùng nhau khám phá một chủ đề siêu hot trong giới code: Viết Unit Test trong JavaScript với Jest. Nếu bạn đang loay hoay không biết làm sao để test code cho xịn sò, không lỗi lầm, thì bài này đúng là chân ái luôn! Jest là một framework test đỉnh của chóp, được dân dev mê mẩn vì dễ dùng, mạnh mẽ. Trong bài này, tụi mình sẽ hướng dẫn từ A đến Z cách viết Unit Test, kèm ví dụ mlem mlem để bạn dễ hình dung. Nào, sẵn sàng chưa? Let’s go! 🚀
Jest Là Cái Gì Mà Hot Thế?
Bạn ơi, trước khi lấn sâu vào việc viết Unit Test trong JavaScript với Jest, phải biết Jest là ai đã chứ! Jest là một thư viện test do Facebook tạo ra, chuyên dùng để kiểm thử code JavaScript, đặc biệt là với các dự án React. Nó xịn ở chỗ tích hợp sẵn mọi thứ, từ test runner, assertion library, đến mocking. Nói kiểu Gen Z thì Jest như một ‘all-in-one’ combo, không cần cài thêm gì nhiều mà vẫn chơi được hết! 😎
Điểm cộng của Jest là tốc độ nhanh như chớp, hỗ trợ parallel testing (test song song) và snapshot testing để kiểm tra UI. Nghe có vẻ căng, nhưng yên tâm, tụi mình sẽ giải thích kiểu ‘dễ như ăn bánh’ ở phần sau nha!
Sao Phải Viết Unit Test? Không Test Thì Sao?
Ơ kìa, không viết Unit Test thì code của bạn dễ lỗi lắm nha! Unit Test là cách để kiểm tra từng phần nhỏ (unit) trong code xem nó có chạy đúng không. Ví dụ, bạn viết một hàm tính tổng, mà không test thì biết đâu nó lại ra kết quả kiểu 1 + 1 = 11 thì xỉu luôn! 😂
Với Jest, việc viết Unit Test trong JavaScript trở nên dễ như trở bàn tay. Nó giúp bạn phát hiện lỗi sớm, tiết kiệm thời gian debug, và đảm bảo code của bạn ‘chạy mượt như crush của tui’. Chốt hạ, không test thì không phải dev xịn, nhớ nha! 💯
Cài Đặt Jest: Dễ Như Ăn Kẹo!
Bắt đầu nào ae, để viết Unit Test trong JavaScript với Jest, bước đầu tiên là cài đặt nó. Bạn chỉ cần chạy vài lệnh cơ bản trong terminal là xong. Tụi mình hướng dẫn chi tiết đây:
- Khởi tạo project với npm:
npm init -y
- Cài Jest:
npm install --save-dev jest
- Thêm script test vào
package.json
:"test": "jest"
Sau đó, chạy npm test
để kiểm tra xem Jest đã sẵn sàng chưa. Nếu thấy output báo ‘No tests found’ thì yên tâm, bạn đã cài thành công. Dễ ẹc đúng không? ✨
Ví Dụ Test Cơ Bản: Học Là Biết Làm Ngay!
Tui bật mí nè, giờ tụi mình sẽ viết một hàm đơn giản rồi test nó bằng Jest. Giả sử bạn có một hàm tính tổng như sau, lưu vào file sum.js
:
function sum(a, b) {
return a + b;
}
module.exports = sum;
Giờ tạo file test tên sum.test.js
và viết code test nè:
const sum = require('./sum');
test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});
Chạy npm test
, nếu thấy kết quả ‘PASS’ thì chúc mừng, bạn đã viết Unit Test đầu tiên với Jest! Xịn chưa, mới đó mà đã pro rồi! 🔥
Mocking Là Gì? Nghe Căng Mà Thực Ra Dễ!
Đi sâu hơn tí nha ae, khi viết Unit Test trong JavaScript với Jest, bạn sẽ gặp khái niệm ‘mocking’. Nói kiểu dân dã thì mocking là giả lập một hàm hoặc module để test, thay vì dùng cái thật. Ví dụ, bạn gọi API mà không muốn gọi thật (vì tốn thời gian, tốn tiền), thì mock nó luôn cho lẹ!
Jest hỗ trợ mocking siêu mạnh. Bạn có thể mock một hàm như sau:
const mockFunction = jest.fn();
mockFunction.mockReturnValue(42);
console.log(mockFunction()); // 42
Thấy chưa, mock kiểu này vừa nhanh vừa tiện, không ẩu mà vẫn chất! 👏
Snapshot Testing: Bắt Lỗi UI Siêu Nhanh!
Nếu bạn làm việc với React, thì Snapshot Testing của Jest là chân ái luôn. Nó chụp lại output của component, lưu thành một file, rồi so sánh với lần test sau. Nếu có thay đổi, Jest sẽ báo cho bạn biết. Nào là kiểm tra giao diện, nào là phát hiện lỗi bất ngờ, đỉnh của chóp luôn!
Cách làm thì dễ ẹc, chỉ cần thêm .toMatchSnapshot()
vào test của bạn. Ví dụ:
test('renders correctly', () => {
const tree = renderer.create( ).toJSON();
expect(tree).toMatchSnapshot();
});
Chạy lần đầu, Jest sẽ tạo file snapshot. Lần sau, nó tự so sánh. Xịn sò chưa? 😍
Tips Test Hay Ho: Đừng Bỏ Lỡ!
Trước khi chốt bài, tụi mình share vài tips để viết Unit Test trong JavaScript với Jest cho hiệu quả nha:
- Viết test trước code: Nghe lạ nhưng trend lắm, gọi là Test-Driven Development (TDD). Viết test trước giúp bạn định hướng code rõ ràng hơn.
- Đặt tên test dễ hiểu: Tên test nên mô tả rõ nó làm gì, ví dụ ‘should return sum of two numbers’ thay vì ‘test1’.
- Dùng coverage: Chạy
jest --coverage
để xem phần trăm code được test. Càng cao càng tốt nha!
Áp dụng mấy mẹo này, đảm bảo code bạn không chỉ chạy mà còn ‘chạy mượt’! 💪
Kết Luận: Test Code Như Dân Chơi!
Hội các bạn ơi, vậy là tụi mình đã cùng nhau lướt qua cách Viết Unit Test trong JavaScript với Jest rồi. Từ cài đặt, viết test cơ bản, đến mocking hay snapshot, tất cả đều dễ như ăn kẹo nếu bạn chịu khó mày mò. Jest không chỉ là tool, mà còn là ‘trợ thủ đắc lực’ giúp code bạn chất lượng hơn, bớt lỗi hơn. Vậy nên, đừng ki bo thời gian mà bỏ qua Unit Test nha, không là tự làm khổ mình đó! 😂
Bạn đã thử Jest chưa? Comment chia sẻ kinh nghiệm hay thắc mắc cho tụi mình biết nha. Và đừng quên share bài này nếu thấy hữu ích, để hội dev cùng ‘cháy’ với Jest! Chốt hạ, hẹn gặp lại ở bài sau, bye bye! 🖐️