O teste de unidade permite que pequenas seções de código sejam testadas isoladamente do restante da sua extensão e fora do navegador. Por exemplo, é possível criar um teste de unidade para garantir que um método auxiliar grave corretamente um valor no armazenamento.
O código escrito sem usar APIs de extensão pode ser testado normalmente, usando um framework como Jest. Para facilitar o teste do código dessa forma, considere o uso de técnicas como Injeção de dependência, que pode ajudar a remover dependências no Chrome. na sua implementação de nível inferior.
Se você precisar testar um código que inclui APIs de extensão, use simulações.
Exemplo: uso de simulações com o Jest
Crie um arquivo jest.config.js
, que declara um arquivo de configuração que será executado antes de todos os testes:
jest.config.js:
module.exports = {
setupFiles: ['<rootDir>/mock-extension-apis.js']
};
Em mock-extension-apis.js
, adicione implementações para as funções específicas que você espera chamar:
mock-extension-apis.js:
global.chrome = {
tabs: {
query: async () => { throw new Error("Unimplemented.") };
}
};
Em seguida, use jest.spy
para simular um valor de retorno em um teste:
test("getActiveTabId returns active tab ID", async () => {
jest.spyOn(chrome.tabs, "query").mockResolvedValue([{
id: 3,
active: true,
currentWindow: true
}]);
expect(await getActiveTabId()).toBe(3);
});
Próximas etapas
Para garantir que sua extensão funcione conforme esperado, recomendamos adicionar testes completos. Consulte Testar extensões do Chrome com o Puppeteer para conferir um tutorial completo.