Junit, uma ferramenta para testes! [ passo a passo ]

Post on 07-Dec-2014

9.061 views 4 download

description

aprenda JUNIT facilmente

Transcript of Junit, uma ferramenta para testes! [ passo a passo ]

JUnit

Uma ferramenta para testes

Judson Melo Bandeira - judsonnosduj@gmail.com

JUnit

O JUnit é um framework open-source, criado por Erich Gamma e Kent Beck, com suporte à criação de testes automatizados na linguagem de programação Java.

Wikipédia

JUnit

Com o JUnit temos a facilidade de criar códigos para testes. Com isso, ganhamos algumas vantagens.

1. Permite a criação rápida de código de teste enquanto possibilita um aumento na qualidade do sistema sendo desenvolvido e testado;

2. Não é necessário escrever o próprio framework;3. Amplamente utilizado pelos desenvolvedores da comunidade código-aberto, possuindo um grande número

de exemplos;4. Uma vez escritos, os testes são executados rapidamente sem que, para isso, seja interrompido o processo

de desenvolvimento;5. JUnit checa os resultados dos testes e fornece uma resposta imediata;6. Pode-se criar uma hierarquia de testes que permitirá testar apenas uma parte do sistema ou todo ele;7. Escrever testes com JUnit permite que o programador perca menos tempo depurando seu código;8. JUnit é LIVRE.

Wikipédia

Como usar (Netbeans)Primeiramente, vamos criar um projeto java qualquer.

Como usarEm seguida, criamos uma nova classe e alguns métodos para ela.

Pergunta

Será que quando criamos os métodos temos a certeza de que eles estão me retornando o valor correto? Ou em caso mais geral, será que estão fazendo o que realmente deveriam fazer?

Proposta de Solução

Vamos testá-los com o JUnit!

Como usarClique com o botão direito na classe, aponte para ferramentas e depois clique em Criar testes JUnit.

Como usarEscolha inicialmente o JUnit versão 3 (e desative o inicializador e finalizador de testes e dê ok). Vemos que será criado um pacote para testes no projeto, além da classe de testes [nomedaclasse]Test.

Como usarVimos que os métodos de teste test[nomedométodo] também foram criados automaticamente. Daí nós já percebemos uma vantagem que é economia de tempo para o programador, além do código ser aberto.

Mão na massa!

Vamos modificar os métodos e rodar o JUnit!

Mão na massaUtilizamos para leitura do JUnit o assertEquals, que vamos fazer uma análise: ( valor que eu espero que a função me retorne, valor que a função me retorna ). Se forem iguais, passa no teste.

Mão na massa

Vamos fazer o JUnit testar! Para isso, execute a classe de teste.

Mão na massa

Será mostrada a porcentagem dos testes que passaram. No nosso caso, todos os testes passaram, portanto, 100%

Mão na massa

Agora vamos supor que por algum descuido errássemos o código do método subtrair:

Mão na massa

Como colocamos no teste, queríamos subtrair 5-3. O resultado é 2. porém como erramos o método, ele me retornaria 15. O JUnit nos mostra isso.

Mão na massaSão dois testes. Como um falhou, 50% passaram no teste. Veja que "se espera 2.0" mas a função me retorna 15.0

Outro modo

Temos outras asserções, como assertTrue e assertFalse. Passa pelo teste se o que está dentro de assertTrue for true e se o que está dentro de assertFalse for false.

Mão na massaPor que não passou pelo teste? Porque o que estava dentro do assertFalse era true, e para passar por ele devemos ter um false como resultado.

Mão na massaVamos supor agora que tenhamos milhares de testes e que queremos desprezar um deles. Por exemplo, nesse teste que o testSubtrair está dando erro, podemos desprezá-lo inserindo o prefixo DISABLED_ no nome da classe.

Outros tipos de dadosTambém podemos fazer testes com outros tipos de dados...

Continuando

Se quisermos que um teste dure um certo tempo, ou seja, que ele não demore, podemos fazer com que o teste falhe caso passe de um determinado tempo limite para ser executado.

Mão na massa

Mão na massa

Caso marquemos as opções inicializador e finalizador de teste, podemos configurar o JUnit para fazer algo antes de fazer um teste e depois de fazê-lo.

Mão na massa