2013-04-19 3 views
1

NetBeans에서 JUnit을 사용하여 void 메소드를 테스트하려고합니다. 내 메소드가 double 변수의 값을 변경 한 다음 새 변수의 valur를 TextField로 인쇄합니다. 내 메소드는JUnit을 사용하여 void 메소드를 테스트하십시오.

입니다.
private void calcul(){ 

     if(operateur.equals("+")){ 
      chiffre1 = chiffre1 + Double.valueOf(ecran.getText()).doubleValue(); 
      ecran.setText(String.valueOf(chiffre1)); 
     } 
     if(operateur.equals("-")){ 
      chiffre1 = chiffre1 - Double.valueOf(ecran.getText()).doubleValue(); 
      ecran.setText(String.valueOf(chiffre1)); 
     }   
     if(operateur.equals("*")){ 
      chiffre1 = chiffre1 * Double.valueOf(ecran.getText()).doubleValue(); 
      ecran.setText(String.valueOf(chiffre1)); 
     }  
     if(operateur.equals("/")){ 
      try{ 
       chiffre1 = chiffre1/Double.valueOf(ecran.getText()).doubleValue(); 
       ecran.setText(String.valueOf(chiffre1)); 
      } catch(DivisionSurZeroException e) { 
       ecran.setText("0"); 
      } 
     } 
    } 

무효화 방법을 테스트하는 방법에 대해 살펴 보았지만 컬렉션의 크기를 변경하는 void 메서드를 사용할 수 있습니다.

제발 나에게 몇 가지 아이디어를 줄 수 있습니까? 나는 무엇부터 시작해야할지 모르겠다.

+0

변경하려는 변수의 값을 얻기 위해'get()'메소드를 사용하고 예상 결과와 함께'assert()'를 사용하십시오 [JUNIT 테스팅 무효 메소드] –

+0

가능한 중복 (http : // stackoverflow .com/questions/16043819/junit-testing-void-methods) –

+2

나는 계산과 텍스트 필드 텍스트 치환을 분리하는 방법을 리펙토링 할 것이다. 그런 다음 계산 방법을 junit과 별도로 테스트하십시오. –

답변

4

테스트 된 클래스의 새 엔터티를 만들고 호출 한 후에 함수를 호출해야합니다. 나중에 당신이 원했던 것처럼 가치가 변했다고 주장합니다.

TestedClass tested = new TestedClass(); 
tested.calcul(); 

assertEquals("val", tested.getVal()); 

그러나 예제 메서드에서는 private입니다. 테스트하려면 PowerMock을 사용해보십시오.

1
  1. 당신은 몇 가지 더 작은 방법 (각 연산자에 하나씩)으로 방법을 나눠서 독립적으로 테스트 할 수 있습니다.

  2. 테스트 void 방법은 반환 값과 시험 방법에서 너무 다른되지 않습니다 :

    1. 는 사후

  • 체크 당신의 방법을 실행의 전제 조건이
  • 을 설정 당신의 경우 :

    yourClass.setOperateur("+"); 
    yourClass.setChiffre1(5); 
    yourClass.setEcran("7"); 
    
    yourClass.calcul(); 
    
    assertEquals("12", yourClass.getEcran()); 
    
  • 관련 문제