인프런 커뮤니티 질문&답변
private 상수 테스트 관련 질문
작성
·
15
0
안녕하세요, 선생님의 강의 덕에 개인 프로젝트에 테스트를 적용하는 재미를 느끼고있는 수강생입니다.
강의 내용을 참고하여 개인 프로젝트에서 도메인 테스트를 작성하던 중,
한 가지 개념적으로 헷갈리는 지점이 있어 질문드립니다.
강의 중
“private 메서드는 테스트할 필요도 없고, 해서도 안 된다”
라고 말씀 주셨는데,
엔티티 내부에 도메인 정책으로서
private static final상수와 이를 사용하는private검증 로직이 존재하는 경우엔 어떻게 하지...?
라는 궁금증이 생겼습니다.
이때 테스트에서는 경계값을 검증해야 하는데,
@Entity
public class TransactionFile extends BaseEntity {
private static final long MAX_FILE_SIZE = 10;
// 중략
private static void validateSize(long size) {
state(size != 0, "파일 크기는 0보다 커야합니다.");
state(size <= MAX_FILE_SIZE*1024*1024, "파일 크기는" + MAX_FILE_SIZE + "MB 이하여야 합니다.");
}
}
상수가 private 이므로 테스트 코드에서 값을 참조할 수 없습니다.
class TransactionFileTest {
long fileSize = MAX_FILE_SIZE * 1024 * 1024 - 1; // 테스트에서는 접근 불가
}
결국 궁금한 점은 private 상수를 경계값 테스트 기준으로 사용할 시...
□ 단순히 도메인 모델 정책만 지켜지는지 검증하고 경계값 테스트를 안하는게 맞는지
(예 - MIN_VALUE, MAX_VALUE를 써서 그냥 충분히 작은값, 큰값으로 테스트하고 넘기기)□ 아니면 리플렉션을 이용해서 상수 값을 참조해야하는지
(강의 중 리플렉션에 대해 부정적으로 말씀해 주셔서, 이런 경우에도 리플렉션을 지양하는 것이 맞는지 아니면 예외적으로 고려할 수 있는 상황인지...)
강의자님의 실무 기준을 듣고싶습니다.
답변
답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!





