Getter 없이 Test해보기

2023. 11. 24. 15:54· 개발
목차
  1. 메서드를 호출했을 때 Field에 있는 Name과 MoveCounter의 결과가 어떻게 되었는지 Test해봅시다.
  2. 1. 리플렉션 활용하기
  3. 2. JUnit AssertJ로 활용해보기
  4. 이럴꺼면... Getter 쓸래요!
반응형

getter를 지양하라는 의미는 객체의 책임을 더욱 명확하게 하기 위해서 지양하는 것이지 자료구조나 Test에서는 사용하는게 맞다고 생각합니다.

  • getter를 사용했을 때 편리함을 몸으로 느껴보고 작성하게 되었습니다.

 

메서드를 호출했을 때 Field에 있는 Name과 MoveCounter의 결과가 어떻게 되었는지 Test해봅시다.

 

1. 리플렉션 활용하기

 
Class에 있는 Field를 꺼내오는 방식입니다.

  • 접근제어자가 public이면 상관없지만 setAccessible 메서드에 true를 주어야 private 필드에 접근이 가능합니다.
  • 예외 메시지도 잘 가르쳐줘서 금방 해결할 수 있다고 생각합니다.
    • java.lang.IllegalAccessException: class racingcar.domain.car.CarTest cannot access a member of class racingcar.domain.car.Car with modifiers "private final"

2. JUnit AssertJ로 활용해보기

 
어라라,,, 왜 Test가 통과를 안할까요??

 
저의 Getter와 연관이 있었습니다.

 
Test를 통과하려면?

  •  주석으로 Getter를 전부 지워주거나
  • Test를 고치던가
  • Getter를 고치던가

 
 

아래의 글을 확인해보면 Assertj의 extracting을 개발했을 때 의견을 알 수 있었습니다.

  • extracting() 메서드에 속성 이름을 문자열로 전달하면서 오타가 포함될 수 있다.
  • 속성을 다시 이름을 바꾸더라도 테스트 메서드는 문제없이 컴파일 된다.

문제는 테스트를 실행할 때까지 문제를 확인하지 못합니다. 또한, 네이밍 문제를 최종적으로 찾는 데 시간이 걸릴 수 있어 AssertJ는 속성 이름 대신에 getter 메서드 참조를 전달할 수 있도록 지원한다.

https://www.baeldung.com/java-testing-single-assert-multiple-properties

 

이럴꺼면... Getter 쓸래요!

반응형
저작자표시 비영리 변경금지 (새창열림)

'개발' 카테고리의 다른 글

java에서 이미지 작업 및 최적화하기  (0) 2024.06.11
도메인 주도 설계의 사실과 오해  (0) 2024.04.29
EnumMap 적용하기!  (1) 2023.11.08
매직넘버, 리터럴 어디까지 상수 처리해야 돼?  (4) 2023.11.06
1주 차 피드백을 2주 차 과제에 적용하기까지  (0) 2023.11.01
  1. 메서드를 호출했을 때 Field에 있는 Name과 MoveCounter의 결과가 어떻게 되었는지 Test해봅시다.
  2. 1. 리플렉션 활용하기
  3. 2. JUnit AssertJ로 활용해보기
  4. 이럴꺼면... Getter 쓸래요!
'개발' 카테고리의 다른 글
  • java에서 이미지 작업 및 최적화하기
  • 도메인 주도 설계의 사실과 오해
  • EnumMap 적용하기!
  • 매직넘버, 리터럴 어디까지 상수 처리해야 돼?
uhanuu
uhanuu
uhanuu
몸뚱아리부터 마음가짐까지
uhanuu
전체
오늘
어제
  • 분류 전체보기 (127)
    • 개발 (14)
      • Spring Boot (8)
      • 첫 번째 프로젝트 (4)
      • 코테 & 알고리즘 공부 (2)
      • Git (2)
    • 책 (57)
      • Java 언어로 배우는 디자인 패턴 입문 (6)
      • Java의 정석 (22)
      • SQL 첫걸음 (8)
      • 이펙티브 자바 (4)
      • 모던 자바 인 액션 (11)
      • 카프카 핵심 가이드 (6)
    • CS (4)
      • 컴퓨터 구조 (1)
      • 운영체제 (3)
    • Java (5)
    • DB (3)
    • Web (8)
    • 일상 정리 (0)
    • 클라우드 (4)
    • vue (2)
    • Kafka (4)
    • Reactive Programming (7)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Kafka
  • Producer

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
uhanuu
Getter 없이 Test해보기
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.