You are currently browsing the category archive for the ‘Testes’ category.
Olá pessoal,
Hoje teremos aqui um passo-a-passo, quase uma receita da Ana Maria Braga sobre testes unitários com JUnit, além de um breve comentário sobre a importância desses benditos testes.
O que são testes unitários?
Testes unitários consistem na realização de testes em pequenas partes (unidades) do código. Em muitas linguagens de programação essa pequena parte pode ser um método ou função, em outras podem ser um módulo. O teste é realizado basicamente da seguinte maneira: entramos com os dados no método e recebemos uma saída, que será comparada com a saída esperada para os parametros informados na entrada. O objetivo do teste é encontrar erros em blocos de código, para que não prejudiquem o andamento do sistema posteriormente, após essas partes estarem integradas.
É realmente necessário?
É mais uma boa prática do que uma necessidade, pois além de servir como documentação, estes testes vão te poupar muitas dores de cabeça em uma fase mais avançada do projeto. Garantir que todas as pequenas partes do código estão funcionando como esperado é meio caminho andado para um sistema livre de bugs. Meio caminho porque não garante que a integração das partes seja perfeita, já que podem existir outros fatores envolvidos (infra-estrutura, frameworks de terceiros) que precisam ser testados de maneira integrada.
Test-Driven Development
Os testes vem ao passar dos anos ganhando cada vez mais importância entre os arquitetos/desenvolvedores de software. Algo que ajuda a comprovar esse fato é o TDD (Test-Driven Devopment), uma abordagem (pregada pelo desenvolvimento ágil) focada em testes. Ela se baseia no desenvolvimento dos testes antes da implementação, pois se analizarmos bem, os testes nada mais são do que o comportamento esperado do sistema, ou seja, quais são suas funcionalidades. Uma evolução do TDD é o Behaviour-Driven Development, mais focada na regra de negócio e na formação de um vocabulário comum entre os participantes para essa regra.
Um exemplo em Java
Em Java podemos realizar testes unitários utilizando um framework open source chamado JUnit que facilita muito a realização dos testes. Neste exemplo estou usando o Eclipse Ganymede com Java 6. Vamos à receita:
- Vamos usar uma classe chamada Calculadora.java
- Crie um package separado no seu projeto para que possam ser criadas as classes de teste;
Clique com o botão direito no projeto > New > Package - Adicione a library do JUnit no Build Path do projeto;
Clique com o botão direito no projeto > Properties > Java Build Path > Add Library > JUnit - Vamos a criação da classe a ser testada:
- Clique com o botão direito na package > New > JUnit TestCase;
- Escreva o nome da classe de teste e selecione setUp() e tearDown();
- Clique em Browse… na parte Class under test e escreva o nome da classe a ser testada (Calculadora.java). Clique em Next;
- Selecione os métodos de Calculadora que deseja testar. Em nosso exemplo vamos selecionar apenas o método somar(). Clique em Finish;
- Escreva a implementação do método testSomar(). Vai ficar parecido com isso:
- Clique com o botão direito em cima da classe de teste > Run As > Unit Test;
Outros métodos de TestCase.java
- assertEquals (Object esperado, Object retornado) – testa a igualdade entre os valores esperado e retornado.
- assertTrue (boolean b) – testa retorno booleano VERDADEIRO.
- assertFalse (boolean b) – testa retorno boolean FALSO.
- assertNull (Object o) – testa se um valor de um objeto esta nulo.
- assertNotNull (Object o) – testa se um valor de um objeto não esta nulo.
- assertSame (Object a, Object b) – testa a igualdade entre dois objetos.
- assertNotSame (Object a, Object b) – testa a diferença ente dois objetos.
Conclusão
Como já ficou claro no post, testes são muito importantes para o bom funcionamento do projeto e são praticamente obrigatórios em qualquer situação. Somente com testes você consegue garantir que seu projeto não possui bugs, além de evitar retrabalho por parte dos desenvolvedores. Nesse post utilizei um exemplo simples, mas que já da uma noção de como podemos automatizar nossos testes.
Até mais pessoal, espero que tenham gostado! Abraços!






