Met unit-tests kunnen kleine delen van de code afzonderlijk van de rest van uw extensie en buiten de browser worden getest. U kunt bijvoorbeeld een eenheidstest schrijven om ervoor te zorgen dat een helpermethode een waarde correct naar de opslag schrijft.
Code die is geschreven zonder gebruik te maken van extensie-API's kan op de normale manier worden getest met behulp van een raamwerk zoals Jest . Om het testen van code op deze manier eenvoudiger te maken, kunt u overwegen om technieken als afhankelijkheidsinjectie te gebruiken, die kunnen helpen bij het verwijderen van afhankelijkheden van de Chrome-naamruimte in uw implementatie op een lager niveau.
Als u code wilt testen die extensie-API's bevat, kunt u overwegen om mocks te gebruiken.
Voorbeeld: Mocks gebruiken met Jest
Maak een jest.config.js
bestand, waarin een installatiebestand wordt gedeclareerd dat vóór alle tests wordt uitgevoerd:
jest.config.js:
module.exports = { setupFiles: ['<rootDir>/mock-extension-apis.js'] };
Voeg in mock-extension-apis.js
implementaties toe voor de specifieke functies die u verwacht aan te roepen:
mock-extensie-apis.js:
global.chrome = { tabs: { query: async () => { throw new Error("Unimplemented.") }; } };
Gebruik vervolgens jest.spy
om een retourwaarde in een test te bespotten:
test("getActiveTabId returns active tab ID", async () => { jest.spyOn(chrome.tabs, "query").mockResolvedValue([{ id: 3, active: true, currentWindow: true }]); expect(await getActiveTabId()).toBe(3); });
Volgende stappen
Om ervoor te zorgen dat uw extensie naar verwachting functioneert, raden we u aan end-to-end-tests toe te voegen. Zie Chrome-extensies testen met Puppeteer voor een volledige tutorial.