apenas a logica da unidade em questao. Em sistemas construidos com uso de linguagens orientadas a objetos, essa unidade pode ser identificada como um metodo, uma classe ou mesmo um objeto.Testes Unitarios - Por que?Abaixo temos alguns dos principais fatores que motivam o uso sistematico da pratica de testes unitarios: Previne contra o aparecimento de BUGS oriundos de codigos mal escritos. Codigo testado e mais confiavel. Permite alteracoes sem medo (coragem) Testa situacoes de sucesso e de falha. Resulta em outras praticas XP como: Codigo coletivo, refatoracao, integracao continua. Serve como metrica do projeto (teste ==requisitos) Gera e preserva um conhecimento sobre as regras de negocios do projeto.Teste Unitario - Organizacao dos testes e praticas XPAbaixo na figura 3, temos um diagrama que mostra a forma como as classes de testes ficam organizadas em um projeto codificado em Java e a correlacao com algumas praticas XP. Figura 3. Organizacao das classes de testes. Teste Unitario - Quando fazer?No inicioPrimeiro projetar e escrever as classes de testes, depois as classes com regra de negocios.DiariamenteE SUGERIDO que seja rodado os testes varias vezes ao dia (e facil corrigir pequenos problemas do que corrigir um problemao somente no final do projeto).Teste Unitario - Quem faz?Test Case (para cada classe) Desenvolvedor (Projeta, escreve e roda).Test Suite(Roda varios test cases) Coordenador e Desenvolvedor (Projeta, escreve e roda).Vale lembrar que o Teste de aceitacao (homologacao) e feito junto ao cliente.Outra visao nova, interessante e muito polemica, e a aproximacao da responsabilidade dos testes ao programador, o que em algumas outras abordagens metodologicas e feito somente por equipes separadas, como por exemplo, uma equipe de teste/homologacao. Porem esse contexto e a base de qualquer metodologia agil, pois dessa forma, o proprio programador, ao criar e executar os testes, adquiri um controle maior e imediato na prevencao e correcao de bugs, contribuindo substancialmente para reducao do tempo de vida de um projeto. Teste Unitario - O que testar?Sempre nos ficamos em duvida sobre o que devemos testar em nossas classes, existem alguns macetes que podem nos ajudar a descobrir quais e quantos testes deverao ser escritos: A principal regra para saber o que testar e: Tenha criatividade para imaginar as possibilidades de testes. Comece pelas mais simples e deixe os testes complexos para o final. Use apenas dados suficientes (nao teste 10 condicoes se tres forem suficientes) Nao teste metodos triviais, tipo get e set. No caso de um metodo set, so faca o teste caso haja validacao de dados. Achou um bug? Nao conserte sem antes escrever um teste que o pegue (se voce nao o fizer, ele volta)!Para fixar bem essas dicas, na figura 4, temos um exercicio de imaginacao, onde voce devera achar as possibilidades de testes neste diagrama de classe.Claro que nao existe uma resposta unica para esse exercicio, pois voce, baseando-se em suas experiencias anteriores e sua criatividade, pode ter varias visoes acerca dessa classe.Figura 4. Classe para exercicio de imaginacao. JUnit O que e?Agora sim, depois dessa pequena conceituacao acima sobre testes unitarios, voce vera a partir desse topico que o JUnit e um