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 użycia interfejsów API rozszerzeń można testować w zwykły sposób, korzystając z ramy, takiej jak Jest. Aby ułatwić testowanie kodu w ten sposób, rozważ użycie takich technik jak wstrzykiwanie zależności, które mogą pomóc w usunięciu zależności od przestrzeni nazw chrome w implementacji na niższym poziomie.
Jeśli chcesz przetestować kod, który zawiera interfejsy API rozszerzeń, rozważ użycie mocków.
Przykład: używanie żartów z Jestem
Utwórz plik jest.config.js
deklarujący plik konfiguracyjny, który będzie uruchamiany przed wszystkimi testami:
jest.config.js:
module.exports = { setupFiles: ['<rootDir>/mock-extension-apis.js'] };
W narzędziu mock-extension-apis.js
dodaj implementacje dla konkretnych funkcji, które mają być wywoływane:
mock-extension-apis.js:
global.chrome = { tabs: { query: async () => { throw new Error("Unimplemented.") }; } };
Następnie użyj funkcji jest.spy
, aby imitować zwracaną wartość 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 za pomocą Puppeteer.