Chrome Uzantıları için birim test etme

Birim testi, küçük kod bölümlerinin uzantınızın geri kalanından ayrı olarak ve tarayıcı dışında test edilmesine olanak tanır. Örneğin, bir yardımcı yöntemin depolama alanına doğru bir değer yazdığından emin olmak için bir birim testi yazabilirsiniz.

Uzantı API'leri kullanılmadan yazılan kodlar aşağıdaki gibi bir çerçeve kullanılarak normal şekilde test edilebilir: Jest. Kodun bu şekilde test edilmesini kolaylaştırmak için, Chrome'da bağımlılıkları kaldırmaya yardımcı olabilecek bir bağımlılık yerleştirme ad alanı da kullanabilirsiniz.

Uzantı API'leri içeren kodu test etmeniz gerekiyorsa örnekler kullanabilirsiniz.

Örnek: Jest ile taklitleri kullanma

Tüm testlerden önce çalışacak bir kurulum dosyasını bildiren bir jest.config.js dosyası oluşturun:

jest.config.js:

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

mock-extension-apis.js içinde, çağırmayı beklediğiniz belirli işlevler için uygulamalar ekleyin:

mock-extension-apis.js:

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

Ardından, bir testte döndürülen değeri taklit etmek için jest.spy değerini kullanın:

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

Sonraki adımlar

Uzantınızın beklendiği gibi çalıştığından emin olmak için uçtan uca testler eklemenizi öneririz. Eğitimin tamamını Chrome Uzantıları'nı Puppeteer ile Test Etme başlıklı makalede bulabilirsiniz.