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!