반응형

정리

- @VisibleForTesting 어노테이션은 상용코드(Production code, 프로덕선 코드)에서 쓰이면 안됨.

- @VisibleForTesting 어노테이션은 package-methoddp tkdydehla.

- @VisibleForTesting 어노테이션은 JUnit API의 한 부분이 아님.

- @VisibleForTesting 어노테이션은 JVM에 로드도 되지 않음.

 

테스트 코드 짤 때 주의사항.

- private method/field에 대해서 함부로 private 키워드를 제거하지 않는게 좋다.

  getter, setter를 정의해서 쓰는 것이 차라리 낫다.

- private method/field를 테스트하지 않는 게 좋다. (어차피 못함)

  왜냐하면, private method는 말그대로 private 즉, 클래스 안에서 사용하는 메서드임. 클래스 안에서 내부적인 동작을 위한 메서드라, 외부에서 호출하고 할 수가 없다는 전제가 깔림. 그래서, 이 메서드는 테스트할 필요가 없음.

- public method를 이용해서 private method를 테스트해야한다.  (어디선가 private 메서드를 사용하고 있을 것이다).

- 테스트하기 어려운 코드들은, 프로덕선 코드가 개선해야할 수 도 있다는 표시임.

 

인용/참고자료

https://stackoverflow.com/questions/33267820/how-to-use-visiblefortesting-for-pure-junit-tests

 

@VisibleForTesting 예시 1

https://www.tabnine.com/code/java/methods/com.android.annotations.VisibleForTesting/%3Cinit%3E

 

@VisibleForTesting 예시 2

https://www.javatips.net/api/com.android.internal.annotations.visiblefortesting

반응형