Pengujian unit Ekstensi Chrome

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

Kode yang ditulis tanpa menggunakan API ekstensi dapat diuji seperti biasa, menggunakan framework seperti Jest. Untuk memudahkan pengujian kode dengan cara ini, pertimbangkan untuk menggunakan teknik seperti injeksi dependensi yang dapat membantu menghapus dependensi pada namespace chrome dalam implementasi tingkat rendah Anda.

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 dijalankan 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 meniru 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 lengkapnya.