Kiểm thử đơn vị Tiện ích của Chrome

Kiểm thử đơn vị cho phép kiểm thử các phần mã nhỏ một cách riêng biệt với phần còn lại tiện ích của bạn và bên ngoài trình duyệt. Ví dụ: bạn có thể viết một chương trình kiểm thử đơn vị để đảm bảo rằng một phương thức trợ giúp ghi chính xác một giá trị vào bộ nhớ.

Bạn có thể kiểm thử mã được viết mà không sử dụng API tiện ích như bình thường bằng một khung như Jest. Để dễ dàng kiểm thử mã theo cách này, hãy cân nhắc sử dụng các kỹ thuật như chèn phần phụ thuộc. Kỹ thuật này có thể giúp xoá các phần phụ thuộc trên không gian tên chrome trong quá trình triển khai cấp thấp hơn.

Nếu bạn cần kiểm thử mã có chứa API tiện ích, hãy cân nhắc sử dụng mã mô phỏng.

Ví dụ: Dùng mô phỏng với Jest

Tạo tệp jest.config.js để khai báo tệp thiết lập sẽ chạy trước tất cả các bài kiểm thử:

jest.config.js:

module.exports = {
  setupFiles: ['<rootDir>/mock-extension-apis.js']
};

Trong mock-extension-apis.js, hãy thêm các phương thức triển khai cho các hàm cụ thể mà bạn dự kiến sẽ gọi:

mock-extension-apis.js:

global.chrome = {
  tabs: {
    query: async () => { throw new Error("Unimplemented.") };
  }
};

Sau đó, sử dụng jest.spy để mô phỏng giá trị trả về trong kiểm thử:

test("getActiveTabId returns active tab ID", async () => {
  jest.spyOn(chrome.tabs, "query").mockResolvedValue([{
    id: 3,
    active: true,
    currentWindow: true
  }]);
  expect(await getActiveTabId()).toBe(3);
});

Các bước tiếp theo

Để đảm bảo tiện ích của bạn hoạt động như dự kiến, bạn nên thêm kiểm thử toàn diện. Hãy xem bài viết Thử nghiệm tiện ích của Chrome bằng Puppeteer để biết hướng dẫn đầy đủ.