Programação Orientada a Testes (e introdução ao JUnit no Eclipse)

Eis os passos a seguir, para programar orientado por testes:

  1. Coloque o junit.jar no build path do projeto.

    Você pode fazer isso clicando com o botão direito do mouse sobre o ícone do projeto (na visão Navigator ou no Package Explorer) e escolhendo a opção Properties (a última do menu). Você também pode fazê-lo no momento da criação da classe (no Wizard).

  2. Crie suas classes de teste, herdando de TestCase.

    De preferência todas as suas classes de teste devem ter nomes terminados em Test. Em geral, escrevemos uma classe de teste para cada classe do projeto. Depois veremos como combinar todas as classes de teste em uma única suite de testes.

  3. Escreva seus testes em métodos de teste.

    Os métodos de teste devem ser nomeados testXXX(...). Embora você possa colocar todos os testes em um único método, é conveniente separá-los e nomeá-los de acordo com o propósito a que se destinam. Isto os torna mais informativos no momento de serem executados. Lembre: a idéia é acumular uma grande bateria de testes ao longo do desenvolvimento. Sempre que modificamos o programa corremos o risco de quebrá-lo em algum ponto. Para isso, mantemos todos os testes. Assim, à medida que avançarmos no desenvolvimento, poderemos avaliar o impacto de cada modificação que fizermos sobre os aspectos que já considerávamos estáveis no programa.

  4. Escreva o código do programa referente ao teste.

    Escreva apenas o suficiente para passar no teste. A filosofia é: se você não está convencido que os testes escritos asseguram que seu programa está bom, então escreva mais e melhores testes. Faça do teste sua especificação e sua medida de aceitação.

  5. Execute e interprete os testes.

    Esta é a parte mais fácil! Simplesmente, execute a classe de testes através do JUnit. No Eclipse, clique em "Run -> Run As -> JUnit Test. Dê uma olhada no tab Hierarchy e expanda a árvore de testes no teste MeuContadorTest. Você verá cada um dos testes existentes e o status de aceitação. Nos casos de testes com falha, a parte inferior da janela detalha a condição da falha.

Não esqueça de setar corretamente o build path. Em particular, lembrem de não cometer o erro que eu cometi na aula de segunda-feira: o build path de um projeto importado é o do ambiente original! Isso significa que você deve corrigir os build paths do projeto depois de importá-lo ou garantir que os dois ambientes usados têm a mesma organização de diretórios!

Exercício

Aqui está o código do mini-exemplo usado para ilustrar a idéia de programar orientado a testes. O teste que fizemos em sala de aula foi decomposto em três. Escreva a classe MeuContador que implemente a interface Contador e escreva testes para o método reset(int valorInicial).

Leitura Adicional

Dalton. Última alteração em