Existem várias bibliotecas para fazer teste unitário em código Javascript, eu acabei escolhendo o QUnit como padrão em meus testes. O QUnit é um test suite poderoso e simples de usar. O próprio é usado para testar o código do jQuery e seus plugins oficiais, mas claro, com ele é possível testar qualquer código Javasript genérico, ou seja, suas bibliotecas.
O QUnit é mais um projeto do John Resig, e é mantido por ele e pelo Jörn Zaefferer. O código do QUnit esta no GitHub: http://github.com/jquery/qunit
Apesar de o QUnit ser bem simples de ser usado, resolvi simplificar um pouco mais e criei o QUnitTestMachine. Mas o que QUnitTestMachine faz?
- Simplifica seus testes Javascript baseados no QUnit
- Concentra em um único arquivo Javascript todas as configurações necessárias para rodar seus testes
- Roda seus testes de forma independente
O QUnitTestMachine segue a convenção de possuir um arquivo de teste para cada arquivo Javascript em sua aplicação. Sendo mais claro, se em sua aplicação existe um arquivo “myscript.js” o qual se faz necessário o teste, então no mesmo diretório onde se encontra esse arquivo deve existir um arquivo de teste chamado “test_myscript.js”. O prefixo “test_” pode ser alterado via API, mas o QUnitTestMachine usa este como padrão.
Bom, vamos ver um pouco de código para ficar mais claro:
Para iniciar, abra o arquivo config.js, que é o arquivo de configuração dos seus testes.
- Defina o path root de sua aplicação
QUnitTestMachine.defaults.path = 'http://localhost/';
Note que o path definido utiliza o endereço absoluto, isso é necessário para o carregamento correto dos scripts.
- Após isso, defina o prefixo
QUnitTestMachine.defaults.prefix = 'test_';
Note que se não for definido, o padrão é ‘test_’
- Adicione os scripts para o teste
QUnitTestMachine.scripts.add({
"scripts": [
{name: "app/js/myscript.js"},
{name: "app2/myscript2.js"}
]
});
Pronto. Feito isso a aplicação já está pronta para ser testada, acesse o arquivo test.html e veja o resultado.
Espero que o QunitTestMachine ajude voces com testes unitários, pra mim tem facilitado bastante.
O projeto esta no GitHub, então entrem lá, baixem, copiem, comentem, criem tickets, reportem bugs, etc.
Abaixo segue o link:
https://github.com/jaydson/QUnitTestMachine