Pengujian unit Ekstensi Chrome

Pengujian unit memungkinkan bagian kecil kode diuji secara terpisah dari ekstensi Anda, dan di luar browser. Misalnya, Anda dapat menulis pengujian unit untuk memastikan metode helper menulis nilai ke penyimpanan dengan benar.

Kode yang ditulis tanpa menggunakan API ekstensi dapat diuji seperti biasa, menggunakan framework seperti Jest. Agar kode lebih mudah diuji dengan cara ini, pertimbangkan untuk menggunakan teknik seperti injeksi dependensi yang dapat membantu menghapus dependensi pada namespace chrome dalam implementasi level yang lebih rendah.

Jika Anda perlu menguji kode yang menyertakan API ekstensi, pertimbangkan untuk menggunakan tiruan.

Contoh: Menggunakan tiruan dengan Jest

Buat file jest.config.js, yang mendeklarasikan file penyiapan yang akan berjalan sebelum semua pengujian:

jest.config.js:

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

Di mock-extension-apis.js, tambahkan implementasi untuk fungsi tertentu yang ingin Anda panggil:

mock-extension-apis.js:

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

Lalu, gunakan jest.spy untuk membuat tiruan nilai yang ditampilkan dalam pengujian:

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

Langkah berikutnya

Untuk memastikan ekstensi Anda berfungsi seperti yang diharapkan, sebaiknya tambahkan pengujian menyeluruh. Lihat Menguji Ekstensi Chrome dengan Puppeteer untuk mengetahui tutorial selengkapnya.