강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

eunseo lay님의 프로필 이미지
eunseo lay

작성한 질문수

Practical Testing: 실용적인 테스트 가이드

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를 써서 그냥 충분히 작은값, 큰값으로 테스트하고 넘기기)

□ 아니면 리플렉션을 이용해서 상수 값을 참조해야하는지
(강의 중 리플렉션에 대해 부정적으로 말씀해 주셔서, 이런 경우에도 리플렉션을 지양하는 것이 맞는지 아니면 예외적으로 고려할 수 있는 상황인지...)

 

강의자님의 실무 기준을 듣고싶습니다.

답변

답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!
eunseo lay님의 프로필 이미지
eunseo lay

작성한 질문수

질문하기