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 tách biệt với phần còn lại của tiện ích và với bên ngoài trình duyệt. Ví dụ: bạn có thể viết kiểm thử đơn vị để đảm bảo rằng 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 cách sử dụng một khung như Jest. Để kiểm thử mã dễ dàng hơn 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, để 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 các API tiện ích, hãy cân nhắc việc sử dụng bản mô phỏng.

Ví dụ: Sử 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 hoạt động 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 muốn gọi:

mock-extension-apis.js:

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

Sau đó, sử dụng jest.spy để mô phỏng một 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 hoạt động như mong đợi, 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 đủ.