[Test code] @VisibleForTesting 및 테스트 코드 짤 때 주의사항.
2021. 10. 13. 01:41정리
- @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
'Java > Java(자바)' 카테고리의 다른 글
[Java] 얇은 복사, 깊은 복사 (0) | 2022.01.05 |
---|---|
[Java Framework] Junit과 Mockito 차이 (0) | 2021.10.19 |
[Java] String과 Byte array (byte[]) 변환, 여러가지 방법들 (0) | 2021.10.13 |
[Java] 접근 지정자 (Access modifier) (0) | 2021.10.13 |
[Java] 버전별로 OpenJDK 설치하기, 버전확인하기 (0) | 2021.06.30 |