Karma é uma ferramenta que gera um servidor Web que executa o código de teste para cada um dos navegadores conectados. O quão é necessário se criar testes para um desenvolvedor? Muito necessário. O KarmaJS está aqui para simplificar isso.
Things should be simple. We believe in testing and so we want to make it as simple as possible.
The main goal for Karma is to bring a productive testing environment to developers. The environment being one where they don’t have to set up loads of configurations, but rather a place where developers can just write the code and get instant feedback from their tests. Because getting quick feedback is what makes you productive and creative. – KarmaJS
Instalação
Precisamos primeiramente ter o NodeJS e NPM, instalados.
Podendo ser baixado, aqui: NodeJS com NPM
Agora que já temos o NodeJS e NPM, instalados. Temos que instalar o KarmaJS
via terminal:
1 | npm install -g karma-cli |
Para instalar o KarmaJS
e os plugins no projeto. Basta ter o package.json
e executar os comandos:
1 | npm install karma --save-dev |
Para ter o karma como dependência de desenvolvimento.
1 | npm install karma-jasmine karma-chrome-launcher --save-dev |
Como exemplo, acima estaremos instalando os plugins para o jasmine
e o lançador do chrome
.
Configuração
Agora que temos o KarmaJS
e os plugins instalados, precisamos ir para a parte de configuração.
Para gerar o arquivo de configuração do Karma
, precisamos do comando:
1 | karma init |
Ao executar o comando, aparecerá as perguntas para ser montado o arquivo de configuração.
1 | Which testing framework do you want to use ? |
Após responder as perguntas, será gerado o arquivo karma.conf.js
. Para esse exemplo, as sugestões me atendem, então foi só apertar enter
, direto.
O nosso arquivo de configuração está de acordo com os plugins que foram instalados inicialmente. Para os testes, usaremos o jasmine
e os mesmos rodarão no navegador ‘chrome’, na porta 9876 (http://localhost:9876).
Execução
Para executar o que foi configurado, precisamos do comando:
1 | karma start |
Mesmo não tendo nenhum arquivo para ser testado, executando o comando, já poderá ver em ação o que foi configurado.
Para um exemplo mais prático, vamos criar o arquivo test.js
, com o código:
1 | describe("Exemplo", function() { |
No arquivo karma.conf.js
, vamos acrescentar o caminho do arquivo, para ser identificado.
1 | files: [ |
Pronto, como um código simples de um teste feito com o jasmine
, agora é só executar o karma start
.
No terminal, aparecerá a seguinte mensagem:
1 | Chrome 47.0.2526 (Windows 7 0.0.0): Executed 2 of 2 SUCCESS (0.018 secs / 0.003 secs) |
E assim, temos o primeiro teste rodando de acordo com a nossa configuração, de uma forma bem rápida e simples.
Conclusão
Não se pode ter desculpas para não criar testes para o seu código. Além de assegurar a integridade, previne muitas dores de cabeça e falhas que não podem fazer parte do dia a dia de um bom desenvolvedor. Todo ser humano é falho, então vamos deixar nas mãos da tecnologia a última avaliação do seu código. O bom desenvolvedor é ciente de que pode haver bugs
e que testes, além de ajudar, evita transtornos para o cliente. Afinal, ninguém quer perder dinheiro. Ainda mais se poderia ser evitado.