JUnit - Dúvida com Teste unitário

0 respostas
T

Olá,

Recentemente eu comecei a mexer com teste unitários. Estou usando o JUnit com o Eclipse para isso, e algumas dúvidas apareceram.

A classe q eu estou fazendo é +- a seguinte:

public class Capacidade { 
    
    public boolean habilita; 
    
    public boolean modoOperacao;    

    public AnalogInSet eaCapacidade;    

    public boolean sdAumentaCap; 
    
    public boolean sdDiminuiCap; 
    
    public int capacidadeMinima; 
    
    public boolean pedidoAumentaCap; 
    
    public boolean pedidoDiminuiCap; 
    
    public boolean habilitaPotenciometro; 
    
      
    public void run() { 
        
        /* capacidade habilitada */ 
        if (habilita) { 
            
            /* modo de operação Manual */ 
            if (modoOperacao) { 
                controleManual(); 
            /* Operação Automática */ 
            } else { 
                controleAutomatico(); 
            } // if 
        } // if 
    } // run() 
    
    
    public void aumentaCapacidade() { 
        /* 
         * se a referencia da capacidade foi feita e a leitura é menor que 100,0 % 
         * ou se a leitura da capacidade está desabilitada 
         */ 
        sdAumentaCap = ((eaCapacidade != null && eaCapacidade.value < 1000) || !habilitaPotenciometro); 
    } 
    
    public void diminuiCapacidade() { 
        /* 
         * se a referencia da capacidade foi feita e a leitura é maior do que a capacidade mínima 
         * ou se a leitura da capacidade está desabilitada 
         */ 
        sdDiminuiCap = ((eaCapacidade.value > capacidadeMinima  && eaCapacidade != null) || !habilitaPotenciometro); 
    } 

    
    public void controleManual() { 
        if (pedidoAumentaCap && !pedidoDiminuiCap) // pedido Aumenta Capacidade 
            aumentaCapacidade(); 
        else if (pedidoDiminuiCap && !pedidoAumentaCap) // pedido Diminui Capacidade 
            diminuiCapacidade();        
    }

blz.... até ai tudo bem...

então eu peguei e criei uma classe de teste para essa minha classe:

public class CapacidadeTest extends TestCase { 
    
    Capacidade cap = new Capacidade(); 
    AnalogInSet eaCapacidade = new AnalogInSet(); 


    public void testAumentaCapacidade() { 
        
        /* capacidade com referencia nula */ 
        cap.eaCapacidade = null; 
        
           /* leitura de capacidade desabilitada */ 
           cap.habilitaPotenciometro = false; 
           cap.aumentaCapacidade(); 
           assertTrue(cap.sdAumentaCap); 
           
           /* leitura de capacidade habilitada */ 
           cap.habilitaPotenciometro = true; 
           cap.aumentaCapacidade(); 
           assertFalse(cap.sdAumentaCap); 
           
       /* referencia feita */ 
        cap.eaCapacidade = eaCapacidade; 
        
           /* leitura de capacidade habilitada */ 
           cap.habilitaPotenciometro = true; 
           
              /* capacidade acima da capacidade máxima */ 
              cap.eaCapacidade.value = 1500; // 150,0 % 
              cap.aumentaCapacidade(); 
              assertFalse(cap.sdAumentaCap); 
              
              /* capacidade abaixo da capacidade máxima */ 
              cap.eaCapacidade.value = 900; // 90,0 % 
              cap.aumentaCapacidade(); 
              assertTrue(cap.sdAumentaCap); 
              
          /* leitura de capacidade desabilitada */ 
          cap.habilitaPotenciometro = false; 
          
             /* capacidade acima da capacidade máxima */ 
              cap.eaCapacidade.value = 1500; // 150,0 % 
              cap.aumentaCapacidade(); 
              assertTrue(cap.sdAumentaCap); 
              
              /* capacidade abaixo da capacidade máxima */ 
              cap.eaCapacidade.value = 900; // 90,0 % 
              cap.aumentaCapacidade(); 
              assertTrue(cap.sdAumentaCap); 
    } 

    public void testDiminuiCapacidade() { 
        
        /* capacidade com referencia nula */ 
        cap.eaCapacidade = null; 
        
           /* leitura de capacidade desabilitada */ 
           cap.habilitaPotenciometro = false; 
           cap.aumentaCapacidade(); 
           assertTrue(cap.sdAumentaCap); 
           
           /* leitura de capacidade habilitada */ 
           cap.habilitaPotenciometro = true; 
           cap.aumentaCapacidade(); 
           assertFalse(cap.sdAumentaCap); 
           
       /* referencia feita */ 
        cap.eaCapacidade = eaCapacidade; 
        cap.capacidadeMinima = 100; // 10,0 % 
        
           /* leitura de capacidade habilitada */ 
           cap.habilitaPotenciometro = true; 
           
              /* capacidade acima da capacidade mínima */ 
              cap.eaCapacidade.value = cap.capacidadeMinima + 50; 
              cap.diminuiCapacidade(); 
              assertTrue(cap.sdDiminuiCap); 
              
              /* capacidade abaixo da capacidade mínima */ 
              cap.eaCapacidade.value = cap.capacidadeMinima - 50; 
              cap.diminuiCapacidade(); 
              assertFalse(cap.sdDiminuiCap); 
              
          /* leitura de capacidade desabilitada */ 
          cap.habilitaPotenciometro = false; 
          
             /* capacidade acima da capacidade mínima */ 
              cap.eaCapacidade.value = cap.capacidadeMinima + 50; 
              cap.diminuiCapacidade(); 
              assertTrue(cap.sdDiminuiCap); 
              
              /* capacidade abaixo da capacidade mínima */ 
              cap.eaCapacidade.value = cap.capacidadeMinima - 50; 
              cap.diminuiCapacidade(); 
              assertTrue(cap.sdDiminuiCap); 
    }    

}

Ou seja, eu testei as condições para os meus métodos aumentaCapacidade() e diminuiCapacidade().... até ai tudo bem tmb (eu acho pelo menos).

Foi ai q surgiu a minha dúvida:

Seu eu crio um novo método que basicamente só chama métodos já testados, como eu faço para testar as novas funcionalidades deste método sem ficar repentindo o código de testes já feitos anteriormente nos outros métodos???

Na classe acima eu criei um método chamado controleManual(), sem retorno, que basicamente verifica uma condição e chama os métodos aumentaCapacidade() e diminuiCapacidade(). Qual seria a melhor forma de fazer o teste deste método, sem refazer os testes anteriores??????

E eu também criei um método run(), que irá usar o método controleManual(), e um outro método q ainda não foi criado....

Como eu faria o teste desse novo método também, sem repetir o código de testes antigos????

Agradeço desde já qualquer tipo de ajuda.

Criado 22 de junho de 2005
Respostas 0
Participantes 1