Automatizando a criação do Test Case

Código já pronto do test case, porém o Eclipse pode ajudá-lo automatizando parte da criação do código do teste.

Para isso, como mostra a figura 1, clique no menu File\New e escolha a opção Other.

Iniciando a automatização da criação da classe de teste
Figura 1. Iniciando a automatização da criação da classe de teste.

Em seguida (ver figura 2), surgirá a tela New, onde você escolherá a opção JUnit Test Case, depois clique em Next.

Escolhendo na tela new, a opção para criação do test case
Figura 2. Escolhendo na tela new, a opção para criação do test case.

Logo surgirá a tela do assistente de criação do Test Case (ver figura 3), onde você pode definir o nome da pasta onde ficará o arquivo de teste, nome do pacote, nome do teste, superclasse, quais métodos serão implementados e o nome classe que será testada, depois basta clicar em Next.

Assistente para criação do test case
Figura 3. Assistente para criação do test case.

A seguir, como mostra a figura 4, você irá escolher os métodos a serem testados e por final clicar em Finish.

Escolha dos métodos as serem testados
Figura 4. Escolha dos métodos as serem testados.

E veja finalmente na figura 5, o resultado com a classe gerada pelo assistente, note que o Eclipse não gera os códigos referentes às declarações assertivas, ou seja, você terá que implementá-los à mão.

Resultado da classe gerada pelo  assistente
Figura 5. Resultado da classe gerada pelo assistente.

Outros exemplos e outros métodos de teste com Eclipse

Veja na figura 6, o exemplo de uso de outro método assertivo de teste, o assertTrue(), que analisa o retorno booleano do método instanciado no atributo b.

Resultado da classe gerada pelo assistente
Figura 6. Resultado da classe gerada pelo assistente.

Existem ainda outros métodos de testes assertivos usados pelo JUnit como, por exemplo:

  • assertEquals(): Testa igualdade entre dois objetos (esperado x retornado).
  • assertFalse(): Testa Retorno booleano FALSO.
  • assertTrue(): Testa Retorno booleano VERDADEIRO.
  • assertNotNull(): Testa se um valor de um objeto NÃO está NULO.
  • assertNull(): Testa se um valor de um objeto está NULO.

Métodos setUp() e tearDown()

Conforme mostra na figura 7, são métodos que inicializam e destroem em eu único lugar os dados reutilizados por vários testes, esses atributos são Inicializados no setUp() e destruídos no tearDown() (se necessário).

Uso do método setUP()
Figura 7. Uso do método setUP().

Criando Test Suíte com Eclipse

A principal função de um test suíte é rodar vários test cases ao “mesmo tempo”, na verdade trata-se de uma classe que contém métodos que disparam a execução de vários test cases. O Eclipse também disponibiliza de maneira simples um assistente para a criação de classes de testes suítes.

Para iniciar a criação dessa classe, clique em File\New\ escolha a opção Other e conforme a figura 8, escolha a item JUnit Test Suíte em seguida clique em Next.

Tela new para escolha do item JUnit Test Suíte
Figura 8. Tela new para escolha do item JUnit Test Suíte.

Em seguida, conforme a figura 9, surgirá a tela do assistente de criação do test suíte, nela você irá definir o nome do test suíte e escolher quais test cases serão executados automaticamente, logo após clique em Finish para terminar o assistente.

Tela do assistente de criação do teste suíte
Figura 9. Tela do assistente de criação do teste suíte.

E por último, como na figura 10, aparecerá a classe de test suíte criada.

Note que o principal método usado por essa classe é o addTestSuite() que invoca uma classe de teste case, e por isso que é possível rodar vários testes, pois podemos usar várias vezes esse método para cada test case de nosso projeto.

Vale lembrar que a forma de executar essa classe é da mesma forma como se executa em test case, portando, sua forma de exibição do resultado semelhante, com única diferença que será mostrada o uma lista em árvore com o resultado de cada test case executado.

Classe de teste suíte criada
Figura 10. Classe de teste suíte criada.

Técnicas complementares

Claro que somente o teste unitário não cobre toda a demanda de testes que seu projeto possa necessitar, para isso é importante lembrar que existem que existem outras técnicas e ferramentas de testes que podem ser aplicadas como, por exemplo:

  • Teste de Performance;
  • Teste de Carga;
  • Teste de estresse;
  • Teste de aceitação.
Conclusões

Bem caro amigo, espero sinceramente com este artigo ter mais uma vez cumprido meu papel de simples “evangelizador” de Extreme Programming.

Particularmente eu acredito que uso da pratica de testes unitários tem crescido muito principalmente por se tratar de uma prática XP ao nível de codificação muito importante para programadores e também por já existir ferramentas e frameworks para várias linguagens como Java, Delphi, .Net. C++, C# e SmallTalk, o que facilita sua adoção e modulariza o uso de Extreme Programming.

Espero também que você tenha compreendido bem esse artigo, e mais ainda, gostaria muito que caso você ainda não use testes unitários em seus projetos, que passe a usá-los, pois somente assim verá a real vantagem que ela pode lhe proporcionar.

Links

www.junit.org
Site oficial do Junit.

www.java.com
Site oficial Sun para a plataforma Java.

Links Úteis

  • Paginação de dados no ASP.NET MVC com PagedList:
    Neste exemplo você verá como implementar paginação de registros em aplicações web com o ASP.NET MVC, utilizando para isso a biblioteca PagedList, que também já cria os controles de navegação com o Bootstrap.
  • Bate-papo sobre mobile:
    Neste DevCast temos um bate-papo sobre o desenvolvimento de apps mobile. Falamos aqui sobre quais tecnologias estudar, quando optar por cada uma e o que o mercado espera do desenvolvedor atualmente.
  • CRUD em PHP e MVC com Busca e Paginação:
    Aprenda a implementar uma busca, paginação e conversão monetária em PHP e MVC. Para isso vamos utilizar o projeto que criamos no curso “Como implementar um CRUD em PHP com MVC”.

Saiba mais sobre Java ;)

  • Carreira Programador Java:
    Nesse Guia de Referência você encontrará o conteúdo que precisa para iniciar seus estudos sobre a tecnologia Java, base para o desenvolvimento de aplicações desktop, web e mobile/embarcadas.
  • Cursos de Java:
    Torne-se um programador Java completo. Aqui você encontra cursos sobre as mais ferramentas e frameworks do universo Java. Aprenda a desenvolver sites e web services com JSF, Jersey, Hibernate e mais.
  • Java: variáveis e constantes:
    Neste documento será apresentado como declarar e utilizar variáveis e constantes. É por meio delas que conseguimos guardar os dados em memória e acessá-los quando necessário.