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.