r1 - 15 May 2006 - 15:17:04 - MeLgaYou are here: TWiki >  Doo Web  > DiaADia > OnzeDeMaio > IntroducaoAoDesenvolvimentoGuiadoPorTestes > UmExemploSimplesPorFavor > SegundoPasso > TerceiroPasso > QuartoPasso
Quarta passagem pelo Ciclo Básico :

O problema das arestas inválidas


  • Criar um teste (uma afirmação verdadeira sobre o domínio do problema)
    •  "os lados 6,6,-6 não formam um triângulo" 

  • Escrever o teste usando a linguagem (usando asserções, por exemplo)
            Até agora classificamos triangulos válidos. Agora estamos tratando com uma exceção .
            Utilizaremos a idéia de ProjetoPorContrato, colocando a regra:
                 "toda aresta deve ter valor positivo"
            como pré-condição para a criação de Triangulos.
    
            Qualquer tentativa de usar valores não positivos deverá disparar um ErroDeAssercao.
            O teste ficará dividido em duas partes:
    
                  a) comprovar a ocorrencia do erro
    
                     try {
                          new Triangulo(6,6,-6);
                          assert (false):"Impossível chegar aqui. Deve desviar no comando anterior";
                     } catch (AssertionError e){
                          mensagemDeErro = e.getMessage();
                     };   
                   

               b) especificar qual mensagem é esperada do software  
 
                      assert mensagemDeErro.equals("toda aresta deve ter valor positivo");          

  • implementar o código de produção, que permita executar o teste com sucesso
                     class Triangulo{ 
                          public Triangulo(int a, int b, int c){
                              assert( a>0 && b>0 && c>0 ): "toda aresta deve ter valor positivo"; 
                              ...
                          }
                     } 
 

(código completo)

  • fatorar o código de produção
    • sem necessidade aparente


fim do quarto passo

Ciclo Básico QuartoPasso QuintoPasso

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