JUnit - Dúvida com Teste unitário

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:

[code]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();        
}[/code] 

blz… até ai tudo bem…

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

[code]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); 
}    

} [/code]

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.