2014-04-01 3 views
0

누군가가 나에게 설명해 주시겠습니까? 단위 테스트를하는 동안 추상적 클래스의 비공개 필드를 얻으려면 어떻게해야합니까? 두 가지로 나눌 수 있습니다 :테스트 용 추상 클래스에 대한 getDeclaredFields

  1. 클래스 변수를 만드는 방법.
  2. 테스팅을 위해 비공개 필드를 가져 오는 방법. 예를 들어

:

public abstract class pclass{ 
    private int toCheck = 0; 

    public void change(){ 
     toCheck++; 
    } 
} 

어떻게 toCheck 변경 방법 (물론 더 복잡한 방법에 대한 유용한 ...)?

+0

이 어쩌면 내가 모르는 뭔가가있어,하지만 두 번째 질문에 대한 대답은 제목에있다 :'getDeclaredFields (당신은 구아바를 사용하는 경우 -

대안은 필드 패키지는 개인 및 플래그를 확인하는 것입니다)'. –

+0

왜 비공개 필드를 테스트해야합니까? 일반적인 권장 사항은 테스트 개인 필드/메소드가 아닙니다. http://lassekoskela.com/thoughts/24/test-everything-but-not-private-methods/ –

답변

0

void 방법의 경우 일반적으로 부작용을 테스트해야합니다. 귀하의 경우에는 그 부작용에 액세스 할 수있는 다른 방법이 있어야합니다 (그렇지 않으면 change 메서드는 쓸모가 없습니다). 그것이 당신이 테스트 할 필요가있는 것입니다.

실생활의 예를 염두에두면 공유하는 것이 적절하게 도움이 될 것입니다.

@VisibleForTesting int toCheck = 0;