Você certamente já brincou ou trabalhou com Javascript, mas já testou o que você fez? E saiba, não estou falando de testes manuais. hehe
Em algum momento dos meus atuais exercícios com o Jonas aqui na Lambda, ele me apresentou o Jasmine que é um framework de teste para Javascript, que rola seguindo uma técnica de desenvolvimento Ágil, chamada BDD(Behavior Driven Development), mas como não é o foco, não entrarei em maiores detalhes.
Jasmine
Vamos diretamente a prática, baixe o arquivo do Jasmine no Github deles.Abra esse arquivo, que é um diretório, abra a pasta spec e crie um novo arquivo "testando-soma.js". Feito isso, vamos abrir o arquivo e criar uma função de soma em Javascript:
function soma(x, y){
return x + y;
}
Agora vamos escrever um teste para essa função básica:
describe("Dado a soma de 2 e 1:", function(){
it("O retorno deve ser 3.", function(){
var resultado = soma(2, 1);
expect(resultado).toBe(3);
})
}
Entendendo Basicamente na primeira linha
describe, nós descrevemos nossa função, na segunda linha it definimos o que deveria ser o resuldado. Já ali na quarta linha expect nós inspecionamos a variável resultado e com o toBe(), veja como Ser. Ou seja, o resultado esperado deve ser 3.Agora teste você mesmo, abra o arquivo SpecRunner.html, com o seu navegador, e verá o resultado do seu teste. Mas antes, já que você não vai ver nenhum resultado do seu teste, e o motivo é simples, com o seu editor padrão, abra o arquivo SpecRunner.html e inclua a linha:
<script type="text/javascript" src="spec/testando-soma.js"></script>
Feito isso, nosso arquivo javascript, escrito acima, será carregado e poderá passar pelos testes.
Bom, agora vamos escrever um teste mais legal certo?
Vamos reverter uma string, então bora escrever o teste primeiro:
describe("Dado a string 'Asdrubal' a reversão:", function(){
it("O retorno deve ser laburdsA.", function(){
expect(reverse("Asdrubal").toBe("laburdsA");
});
});
Agora vamos escrever a função:
function reverse(texto){
return texto.split("").reverse().join("");
}
No código acima, fizemos um
split para pegar cada letra e transformar num array de char, depois usamos o reverse para reverter esse array e, por fim, o join para montar novamente uma string, coisa básica. Mas já é um teste mais legal :). Não deixe de conferir a documentação e a Introdução, mas é claro, não se prenda ao Jasmine, apenas a idéia de testar seu código já é sensacional, ou não!Dica para os JS testers: Mocha.
Valeu Galera!