나는 여러 가지 개인 메소드로 클래스를 단위 테스트하려고합니다. 개인적인 방법은 각각 광범위 할 수 있습니다.단위 테스트시 자바 액세스 백도어 대체에 대한 대안
I 중 하나를 수행 할 수 있습니다 방법 패키지 (이 경고가 발생) 범위, 또는 내가 테스트 아래의 코드를 사용할 수 있도록 : 클래스는 "하나님 개체"아닙니다
Method method = instance.getClass().getDeclaredMethod("methodName");
method.setAccessible(true);
Object object = method.invoke(instance);
assertNotNull(object);
및 대부분의 메서드는 모든 필드를 터치합니다.
어떻게 처리 할 수 있는지에 대한 제안 사항이 있으십니까?
모든 개인 메서드는 사용되지 않으므로 코드 기반에서 제거하거나 공용 메서드 (또는 여러 공용 메서드)로 호출해야하며 공용 메서드 입력은 모든 공용 메서드를 테스트하도록 설계해야합니다. 공공의 방법으로 –
+1 "테스트 냄새". 몇 가지 개인 메소드가 많은 경우, 클래스를 작은 클래스로 분할하여 각각이 개인 메소드의 서브 세트를 가져와야합니다. 그런 다음 (일부)이 메소드는 public 메소드가 될 수 있습니다. – sleske