✅ Notícias, temas e plug-ins da WEB e do WordPress. Aqui compartilhamos dicas e as melhores soluções para sites.

Como ocultar a saída console.log do JavaScript em testes Jest

22

Eu estava trabalhando hoje em uma base de código que tinha muitas console.logsaídas intencionais em todos os ambientes, exceto produção, então eles estavam aparecendo na saída dos testes do Jest. Teria sido tedioso ir e removê-los um por um, então criei essa configuração simples para suprimir toda console.loga saída de uma só vez enquanto o Jest estiver em execução.

Configurando Existe

Esse truque depende da capacidade nativa de Jest de zombar de qualquer coisa. O que basicamente faremos é zombar do logmétodo do consoleobjeto e deixar os outros métodos intactos.

Primeiro precisamos dizer ao Jest para executar um arquivo de configuração antes que os testes sejam executados. Para fazer isso, editaremos o jest.config.jsarquivo que geralmente está na raiz do seu projeto com outras propriedades de configuração e adicionaremos a seguinte linha:

setupFilesAfterEnv: ['/src/jest.setup.js']

Podemos verificar na documentação do Jest o que o setupFilesAfterEnvfaz:

Uma lista de caminhos para módulos que executam algum código para configurar ou configurar a estrutura de teste antes que cada arquivo de teste no conjunto seja executado.

Agora, quando executarmos nossos testes, eles executarão primeiro o jest.setup.jsque vamos criar agora.

Simulando console.log

Crie um arquivo em src/setup.jsou onde você apontou seu caminho na etapa anterior. Em seguida, você adicionará isso a ele:

global.console = { log: jest.fn(), debug: console.debug, trace: console.trace, }

Isso está substituindo o logmétodo e permitindo os outros. Como eu ainda queria ter a capacidade de produzir algo nos testes, mapeei debuge trace. Você pode mapear outros que você possa precisar, como console.tableelementos de renderização em uma tabela, úteis para registrar objetos ou matrizes. Para ser honesto, até escrever isso, eu nunca tinha visto a página do objeto do console no MDN e existem muitos métodos interessantes como o console.dirque exibe uma lista interativa das propriedades do objeto JavaScript especificado.

Palavras de encerramento

Agora sua console.logsaída é suprimida enquanto seus testes Jest são executados. Se você trabalha em equipe, certifique-se de informar o restante da equipe sobre essa mudança documentando-a, pois alguém pode ficar estressado tentando console.logalgo e não vendo onde deveria estar.

Fonte de gravação: startfunction.com

Este site usa cookies para melhorar sua experiência. Presumiremos que você está ok com isso, mas você pode cancelar, se desejar. Aceitar Consulte Mais informação