Testowanie jednostkowe umożliwia testowanie niewielkich fragmentów kodu niezależnie od pozostałych rozszerzeń i poza przeglądarką. Możesz na przykład napisać test jednostkowy, aby sprawdzić, czy metoda pomocnicza poprawnie zapisuje wartość w pamięci.
Kod napisany bez użycia interfejsów API rozszerzeń można testować w zwykły sposób przy użyciu platformy, takiej jak Jest. Aby ułatwić testowanie kodu w ten sposób, rozważ zastosowanie takich technik jak wstrzykiwanie zależności, które pomogą usunąć zależności od przestrzeni nazw Chrome w implementacji niższego poziomu.
Jeśli musisz przetestować kod zawierający interfejsy API rozszerzeń, rozważ użycie wersji próbnych.
Przykład: wykorzystanie żartów z Jestem
Utwórz plik jest.config.js
z zadeklarowaniem pliku konfiguracji, który zostanie uruchomiony przed wszystkimi testami:
jest.config.js:
module.exports = {
setupFiles: ['<rootDir>/mock-extension-apis.js']
};
W usłudze mock-extension-apis.js
dodaj implementacje konkretnych funkcji, które chcesz wywoływać:
mock-extension-apis.js:
global.chrome = {
tabs: {
query: async () => { throw new Error("Unimplemented.") };
}
};
Następnie użyj funkcji jest.spy
, aby pozorować 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 będzie działać zgodnie z oczekiwaniami, zalecamy przeprowadzanie pełnych testów. Pełny samouczek znajdziesz w artykule Testowanie rozszerzeń do Chrome przy użyciu Puppeteer.