0
0
Lập trình
Sơn Tùng Lê
Sơn Tùng Lê103931498422911686980

Hướng Dẫn Chi Tiết Cài Đặt Jest Testing Cho Ứng Dụng Node.js

Đăng vào 1 tháng trước

• 4 phút đọc

Chủ đề:

Node.js

Hướng Dẫn Chi Tiết Cài Đặt Jest Testing Cho Ứng Dụng Node.js

Jest là một framework kiểm tra mã nguồn mở được phát triển bởi Facebook, giúp lập trình viên dễ dàng viết và chạy các bài kiểm tra cho ứng dụng JavaScript. Bài viết này sẽ hướng dẫn bạn từng bước cài đặt Jest trong dự án Node.js của mình. Hãy bắt đầu ngay để nâng cao chất lượng mã nguồn của bạn!

Điều Kiện Tiên Quyết

Trước khi bắt đầu, đảm bảo rằng bạn đã cài đặt:

  • Node.js trên hệ thống của bạn.
  • Một dự án Node.js, bạn có thể sử dụng dự án hiện có hoặc tạo mới.

Bước 1: Khởi Tạo Dự Án Node.js Mới

Nếu bạn chưa có một dự án Node.js, hãy tạo một thư mục mới và khởi tạo nó:

bash Copy
mkdir my-node-project
cd my-node-project
npm init -y

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

Cài đặt Jest bằng cách sử dụng lệnh sau:

bash Copy
npm install --save-dev jest

Bước 3: Cấu Hình Jest Trong package.json

Bạn cần cập nhật tệp package.json để thêm cấu hình cho Jest và các tập lệnh kiểm tra:

json Copy
{
  "scripts": {
    "test": "jest",
    "test:watch": "jest --watch"
  },
  "jest": {
    "testEnvironment": "node",
    "coveragePathIgnorePatterns": [
      "/node_modules/"
    ],
    "moduleFileExtensions": ["js", "json"],
    "testMatch": ["**/__tests__/**/*.js", "**/?(*.)+(spec|test).js"],
    "verbose": true
  }
}

Bước 4: Tạo Hàm Mẫu Để Kiểm Tra

Tạo một tệp mới đặt tên là math.js với các hàm toán học đơn giản:

javascript Copy
// math.js
function sum(a, b) {
  return a + b;
}

function multiply(a, b) {
  return a * b;
}

module.exports = {
  sum,
  multiply
};

Bước 5: Viết Bài Kiểm Tra Đầu Tiên

Tạo một tệp thử nghiệm với tên là math.test.js:

javascript Copy
// math.test.js
const { sum, multiply } = require('./math');

describe('Các hàm toán học', () => {
  test('1 + 2 phải bằng 3', () => {
    expect(sum(1, 2)).toBe(3);
  });

  test('3 * 4 phải bằng 12', () => {
    expect(multiply(3, 4)).toBe(12);
  });
});

Bước 6: Cấu Hình Jest Bổ Sung

Nếu bạn cần cấu hình chi tiết hơn, hãy tạo một tệp có tên jest.config.js:

javascript Copy
// jest.config.js
module.exports = {
  clearMocks: true,
  collectCoverage: true,
  coverageDirectory: "coverage",
  coveragePathIgnorePatterns: [
    "/node_modules/"
  ],
  testEnvironment: "node",
  testMatch: [
    "**/__tests__/**/*.[jt]s?(x)",
    "**/?(*.)+(spec|test).[tj]s?(x)"
  ]
};

Bước 7: Chạy Bài Kiểm Tra

Bây giờ bạn có thể chạy các bài kiểm tra với npm:

bash Copy
# Chạy tất cả các bài kiểm tra
npm test

# Chạy bài kiểm tra trong chế độ theo dõi
npm run test:watch

# Chạy bài kiểm tra với báo cáo độ phủ
npm test -- --coverage

Một Số Công Cụ So Khớp Thường Dùng Trong Jest

Dưới đây là một số cú pháp kiểm tra cơ bản mà bạn có thể sử dụng:

javascript Copy
// Kiểm tra sự bằng nhau chính xác
expect(value).toBe(2);

// So khớp đối tượng
expect(data).toEqual({id: 1});

// Tính đúng đắn
expect(value).toBeTruthy();
expect(value).toBeFalsy();

// Số
expect(value).toBeGreaterThan(3);
expect(value).toBeLessThan(5);

// Chuỗi
expect(string).toMatch(/pattern/);

// Mảng
expect(array).toContain(item);

// Ngoại lệ
expect(() => {
  throw new Error('Sai!');
}).toThrow('Sai!');

Kiểm Tra Mã Không Đồng Bộ

Jest hỗ trợ kiểm tra mã không đồng bộ một cách hiệu quả:

javascript Copy
// Kiểm tra Promises
test('kiểm tra bất đồng bộ', () => {
  return fetchData().then(data => {
    expect(data).toBe('data');
  });
});

// Sử dụng async/await
test('kiểm tra bất đồng bộ với async/await', async () => {
  const data = await fetchData();
  expect(data).toBe('data');
});

Một Số Best Practices Khi Sử Dụng Jest

  1. Tổ Chức Tệp: Đặt các tệp thử nghiệm gần với mã mà chúng đang thử nghiệm.

    Copy
    src/
      ├── math.js
      └── __tests__/
          └── math.test.js
  2. Kiểm Tra Cô Lập: Đảm bảo mỗi bài kiểm tra hoạt động độc lập, không phụ thuộc vào nhau.

  3. Mô Tả Có Ý Nghĩa: Sử dụng mô tả rõ ràng cho các bài kiểm tra của bạn.

    javascript Copy
    describe('Đăng nhập người dùng', () => {
      test('phải đăng nhập thành công với thông tin hợp lệ', () => {
        // mã kiểm tra
      });
    });
  4. Thiết Lập và Tháo Dỡ: Sử dụng các phương pháp vòng đời của Jest để thiết lập và dọn dẹp khi cần thiết.

    javascript Copy
    beforeAll(() => {
      // Thiết lập trước tất cả các kiểm tra
    });
    
    afterEach(() => {
      // Dọn dẹp sau mỗi kiểm tra
    });

Bài viết này đã hướng dẫn bạn từng bước để thiết lập môi trường thử nghiệm với Jest trong ứng dụng Node.js của bạn. Hy vọng những thông tin này sẽ giúp bạn có thể nâng cao quy trình phát triển và kiểm thử mã nguồn của mình một cách hiệu quả hơn.
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào