wpjr2’s Weblog

Artigos e tutoriais úteis

Testes Unitários com JUnit

Posted by wpjr2 em abril 15, 2008

JUnit é um framework de testes unitários para a linguagem de programação Java. Criado por Kent Beck e Erich Gamma, o JUnit tem sido largamente utilizado em corporações com o objetivo de ampliar a testabilidade de componentes de Software desenvolvidos em Java.

A principal unidade de desenvolvimento no JUnit é o teste unitário. Ele torna possível o desenvolvimento de testes pelo desenvolvedor para verificar as operações básicas sendo desenvolvidas. Na construção dos testes unitários, existe um custo temporal de investimento a ser dado pelo codificador da funcionalidade (ou unidade funcional, método, etc.). Porém este investimento é diluído no momento em que o sistema começa a se compor de dezenas, milhares ou até dezenas de milhares de classes.

As principais vantagens do JUnit incluem:

  • Facilmente integrável com as IDEs Java já existentes (Eclipse, Netbeans, JBuilder, etc.).
  • API fácil de usar, composta de métodos de verificação (assertXXX()) e métodos de preparo (setUp() e tearDown()) disponíveis e já implementados e prontos para uso.
  • O código de testes pode ser fisicamente separado do código da aplicação, evitando que trechos de testes dentro do código da aplicação possam alterar o comportamento da mesma.
  • Gratuito
  • Testes específicos (suites) podem ser executados para partes específicas da aplicação.
  • A construção de testes nos auxilia na definição das interfaces das classes (métodos públicos), optando em esconder detalhes da implementação de algumas funcionalidades.
  • Com a existência dos testes, bugs podem ser encontrados mais rapidamente (apenas uma execução dos testes), especialmente quando ocorrem alterações pelo desenvolvedor ou por terceiros.
  • Usado no desenvolvimento vontado para testes (test driven development), onde os testes são codificados antes do código da unidade funcional (método).
  • Pode ser usada como métrica de qualidade do software no que diz respeito a requisitos funcionais sendo contemplados na aplicação

Terminologia:

  • Test fixture: inicializadores de objetos que serão testados, sempre executado a cada teste unitário. Por exemplo, se o método saque da classe ContaBancaria será testado, este bloco criará um objeto de ContaBancaria que possibilitará o teste do saque.
  • Unit test: teste unitário de uma única classe Java. Geralmente cria-se uma classe de teste unitário para cada classe Java e um método de teste para cada método público da classe.
  • Test case: caso de teste que é implementado para cada método público da classe
  • Test Suite: conjunto de testes
  • Test runner: executador dos testes e que também mostra os resultados dos mesmos.

As principais classes do framework JUnit:

Processo de desenvolvimento com testes:

  1. O teste é criado para definir algum aspecto do problema a ser testado, este contendo algum código simples para que ele passe.
  2. Um segundo teste é criado para cobrir todas as possibilidades possíveis na funcionalidade desenvolvida.
  3. Novos testes são criados até que não haja nenhum método público da classe sem testes (cobertura de 100%)

Exemplo de teste:

Dado a classe Java abaixo:

A seguinte classe de testes unitários pode ser escrita:

Executando os testes unitários em uma IDE (nesta caso o Eclipse), o resultado dos testes pode ser acompanhado através da aba JUnit, conforme mostrada abaixo.

Execução de Testes no JUnit

Links:

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

 
%d blogueiros gostam disto: