O teste de unidade permite que pequenas seções de código sejam testadas de forma isolada do restante da extensão e fora do navegador. Por exemplo, é possível programar um teste de unidade para garantir que um método auxiliar grave corretamente um valor no armazenamento.
O código escrito sem o uso de APIs de extensão pode ser testado normalmente, usando um framework como o Jest (link em inglês). Para testar o código com mais facilidade, use técnicas como a injeção de dependência, que podem ajudar a remover dependências no namespace do Chrome na implementação de nível inferior.
Se você precisar testar um código que inclua APIs de extensão, use simulações.
Exemplo: como usar simulações com o Jest
Crie um arquivo jest.config.js
que declare um arquivo de configuração a 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 Como testar extensões do Google Chrome com o Puppeteer para ver um tutorial completo.