Mocha para JavaScript (Node.js): guia completo com exemplos
1. O que é e para que serve
Mocha é um framework de teste poderoso, flexível e amplamente utilizado para JavaScript, que funciona tanto no ambiente Node.js quanto no navegador. Criado em 2011 pelo desenvolvedor TJ Holowaychuk, tornou-se um dos padrões de facto para testar aplicações JavaScript. O Mocha oferece aos desenvolvedores uma API limpa, modular e expressiva para escrever desde testes unitários simples até cenários complexos de testes integrados e assíncronos.
O principal objetivo do Mocha é tornar o processo de teste o mais simples e intuitivo possível. Ao contrário de outros frameworks, o Mocha não impõe uma estrutura rígida de testes nem inclui uma biblioteca de asserções embutida. Em vez disso, ele fornece uma estrutura (framework) para organizar os testes (describe/it/hooks) e executá-los com diferentes relatórios (reporters), deixando a escolha da biblioteca de asserções a critério do desenvolvedor. Isso torna o Mocha extremamente flexível: você pode usá-lo com o módulo nativo assert, a biblioteca popular Chai (que oferece estilos BDD/TDD), Should.js ou qualquer outra.
Para que serve o Mocha? No desenvolvimento de software moderno, testar não é um luxo, mas uma necessidade. O Mocha permite automatizar a verificação da corretude do código, detectar regressões após alterações, documentar o comportamento de funções e módulos e aumentar a confiabilidade e estabilidade geral da aplicação. Graças ao suporte para testes assíncronos (callbacks, promises, async/await) e à capacidade de trabalhar com várias bibliotecas de asserção, o Mocha é ideal para testar aplicações server-side em Node.js, APIs, bancos de dados e qualquer outro componente.
2. Instalação
O Mocha é instalado através do gerenciador de pacotes npm (Node Package Manager). Recomenda-se instalá-lo como dependência de desenvolvimento (devDependency), já que os testes não são necessários no ambiente de produção.
Comando exato para instalação:
npm install --save-dev mocha
Após a instalação, você pode executar os testes adicionando um script no arquivo package.json:
{
"scripts": {
"test": "mocha"
}
}
Agora os testes podem ser executados com o comando:
npm test
Para instalação global (não recomendado, mas possível):
npm install -g mocha
3. Início rápido — exemplo mínimo funcional
Crie um arquivo test.js com o seguinte conteúdo:
const assert = require('assert');
// Função que será testada
function add(a, b) {
return a + b;
}
// Suíte de testes (suite)
describe('Função add', function() {
// Teste específico (spec)
it('deve retornar a soma de dois números', function() {
// Asserção (assertion)
assert.strictEqual(add(2, 3), 5);
});
it('deve funcionar com números negativos', function() {
assert.strictEqual(add(-1, -1), -2);
});
});
Execute o teste:
npx mocha test.js
Você verá um relatório verde indicando que os dois testes passaram.
4. Principais métodos/funções/classes
O Mocha fornece funções globais que não precisam ser importadas (a menos que estejam desabilitadas pela opção --require). Abaixo estão 8 métodos principais com assinaturas, descrição e exemplos.
4.1 describe(name, fn)
Assinatura: describe(name: string, fn: function): void
O que faz: Cria uma suíte de testes (suite) — um grupo de testes relacionados. Usado para organizar logicamente os testes. Pode ser aninhado.