Testowanie jednostkowe umożliwia testowanie małych fragmentów kodu niezależnie od reszty poza przeglądarką. Można np. napisać test jednostkowy, aby sprawdzić, że metoda pomocnicza prawidłowo zapisuje wartość w pamięci masowej.
Kod napisany bez interfejsów API rozszerzeń można przetestować w zwykły sposób za pomocą takiej platformy: Jest. Aby ułatwić testowanie kodu w ten sposób, zastanów się nad użyciem takich technik jak: wstrzykiwanie zależności, które pomaga usunąć zależności od Chrome przestrzeni nazw w implementacji niższego poziomu.
Jeśli musisz przetestować kod, który obejmuje interfejsy API rozszerzeń, rozważ użycie próbek.
Przykład: używanie mocków w Jest
Utwórz plik jest.config.js
, który deklaruje plik konfiguracji, który będzie uruchamiany przed wszystkimi testami:
jest.config.js:
module.exports = {
setupFiles: ['<rootDir>/mock-extension-apis.js']
};
W pliku mock-extension-apis.js
dodaj implementacje konkretnych funkcji, które chcesz wywołać:
mock-extension-apis.js:
global.chrome = {
tabs: {
query: async () => { throw new Error("Unimplemented.") };
}
};
Następnie użyj jest.spy
, aby zasymulować wartość zwracaną w teście:
test("getActiveTabId returns active tab ID", async () => {
jest.spyOn(chrome.tabs, "query").mockResolvedValue([{
id: 3,
active: true,
currentWindow: true
}]);
expect(await getActiveTabId()).toBe(3);
});
Dalsze kroki
Aby mieć pewność, że rozszerzenie działa zgodnie z oczekiwaniami, zalecamy dodanie testów kompleksowych. Pełny samouczek znajdziesz w artykule Testowanie rozszerzeń do Chrome w aplikacji Puppeteer.