Extensões do Chrome de teste de unidade

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.