Um dos módulos do node é o assert. Não é uma ferramenta completa para testes unitários mas é possível utilizá-lo sem nenhum adicional para realizar seus testes.
fail
: Compara dois valores (estilo atual e esperado).ok
: Confere se a expressão passada é verdadeira.throws
, doesNotThrow
: A função passada deve/não deve lançar uma exceção.ifError
: Testa se o valor passado é verdadeiro; útil para testar variável de erros.Além de vários métodos equal: equal, notEqual, deepEqual, notDeepEqual, strictEqual, notStrictEqual.
Baseado no assert explicado acima, nodeunit é uma das opções mais simples de escrever seus testes unitários. Suporta testes assíncronos.
Os métodos para teste são os mesmos do assert descritos acima. Além deles, para cada função de teste o nodeunit lhe envia um objeto com as seguintes funções:
expect(quantidade)
: Número de asserções que será feita neste teste. Se um número de asserções diferentes do passado for feita o teste falha. A chamada desta função é opcional.done
: Termina o teste atual. Esta função deve ser chamada.Para escrever um módulo de teste é muito simples, basta expor suas funções de teste e receber nelas um paramêtro com o objeto test do nodeunit, exemplo:
exports.testaAlgo = function (test) {
test.expect(2);
test.ok(true, "este teste irá passar");
test.ok(false, "este teste irá falhar e essa mensagem será exibida");
test.done();
};
Basta instalar o nodeunit via npm:
npm install -g nodeunit
E depois executar o teste:
nodeunit meuTeste.js
A saída é algo do tipo:
$ nodeunit meuTeste.js
✖ testaAlgo
Assertion Message: este teste irá falhar e essa mensagem será exibida
Uma das formas de configurar seus testes no seu projeto é utilizar o package.json, exemplo:
"scripts": {
"test": "nodeunit testes/*.js"
}
Desta maneira basta executar npm test
para executar seus testes.
Para não ter que instalar o nodeunit de maneira global em sua máquina (paramêtro -g
do npm install
), pode-se utilizar o nodeunit local da pasta *node_modules*:
"scripts": {
"test": "./node_modules/.bin/nodeunit testes/*.js"
}
Para escrever sua resposta aqui, entre ou crie uma conta.
Compartilhar