r1 - 15 May 2006 - 12:55:15 - MeLgaYou are here: TWiki >  Doo Web  > DiaADia > OnzeDeMaio > IntroducaoAoDesenvolvimentoGuiadoPorTestes > UmExemploSimplesPorFavor > SegundoPasso > TerceiroPasso
Terceira passagem pelo Ciclo Básico :

  • Criar um teste (uma afirmação verdadeira sobre o domínio do problema)
    •  "quanto aos seus lados, o triângulo  de lados 1, 4 e 4 é isósceles" 

  • Escrever o teste usando a linguagem (usando asserções, por exemplo)
    •  new Triangulo(1,4,4).quantoAosLados() == ISÓSCELES; 

  • implementar o código de produção, que permita executar o teste com sucesso
    • class Triangulo{ 
                ...quantoAosLados(){
                         if ( a == b && a == c )  return EQUILÁTERO;
                         if ( a == b || a == c || b == c )  return ISÓSCELES;
                         return ESCALENO;
                   } 
       }
       

(código completo)

  • fatorar o código de produção
    • remover duplicações nas comparações: if ( a = b && a = c ) ; if ( a = b || a = c || ...
        através de:
         public Triangulo(int a, int b, int c){ 
        if (a == b) ladosIguais++;
          if (a == c) ladosIguais++;
        if (b == c) ladosIguais++;
              }
 
           e:
              public TipoDeTriangulo quantoAosLados() { 
             if (ladosIguais > 2 )  return EQUILÁTERO;
        if (ladosIguais == 2 ) return ISÓSCELES;
        return ESCALENO;      
              }           

            podendo assim remover as variáveis de instância de Triangulo. 

  • fatorar o código de testes
    • nominar objetos para testes: UM_EQUILÁTERO ao invés de new Triângulo(2,2,2)

Código fatorado completo

fim do terceiro passo


Ciclo Básico TerceiroPasso QuartoPasso


Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r1 | More topic actions
 
Powered by TWiki
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback