일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 라우터
- OSI7계층
- 리눅스
- Snort Rule
- programmers
- 코딩테스트
- docker
- 라우팅
- 스노트 룰
- 프로그래머스
- Routing
- 데이터베이스
- TDD
- 라우팅프로토콜
- 트레바리
- MySQL
- osi7layer
- snort
- Cosmos
- db
- 코딩 테스트
- Python
- 컨테이너
- 도커
- coding test
- 스노트
- database
- Router
- Linux
- Container
Archives
- Today
- Total
Simple is IT, 누구나 보고 누구나 깨닫는 IT
ERROR: Cannot find symbol method "Getter" 본문
상황
객체를 생성하고, 해당 객체의 getter 를 이용해 비교 테스트를 진행했습니다.
@Test
void create() {
Post actual = Post.of(ANY_ID, ANY_TITLE, ANY_CONTENT, ANY_DATE, ANY_STATUS);
assertThat(actual.getId()).isEqualTo(ANY_ID);
assertThat(actual.getTitle()).isEqualTo(ANY_TITLE);
assertThat(actual.getContent()).isEqualTo(ANY_CONTENT);
assertThat(actual.getDate()).isEqualTo(ANY_DATE);
assertThat(actual.getStatus()).isEqualTo(ANY_STATUS);
}
하지만 에러가 발생했죠.
cannot find symbol method getId()
cannot find symbol method getTitle()
cannot find symbol method getContent()
cannot find symbol method getDate()
cannot find symbol method getStatus()
아니 객체에 Lombok 의 어노테이션인 Getter 를 지정해 줬는데, 왜 해당 메소드를 못 사용할까?
영문도 모르고 허덕여야 했습니다.
직접 손으로 Getter, Setter, Constructor 를 추가해 주자니 너무 귀찮고 또 코드도 보기 싫다고 생각했어요. 제 딴에선 이유를 찾아야만 했습니다.
해결
dependencies 에 아래 내용을 추가해 주니 말끔하게 해결되었습니다.
annotationProcessor 'org.projectlombok:lombok'
이유
annotationProcessor 는 자바 컴파일러의 플러그인 중 하나입니다. 우리가 설치한 Dependency 를 통해 Annotation 을 사용하는 경우 해당 Annotation 에 대한 코드베이스를 검사하고, 수정, 생성하죠.
즉, 자바 컴파일러가 Lombok 의 annotation 을 인식하고 동작을 수행할 수 있도록 정의해 주어야 하는 것이죠.
annotationProcessor 에 대한 자세한 정의는 따로 포스팅을 진행하겠습니다.
'Simple is IT > Programming' 카테고리의 다른 글
[TDD] 태양계 행성 위치 계산기를 TDD 로 구현해보자. (0) | 2022.08.01 |
---|---|
[TDD] 피보나치 수의 정의를 테스트로 유도해 보자. (0) | 2022.07.17 |
Rest API Architecture(작성 중) (0) | 2021.11.07 |
JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가. (0) | 2021.10.31 |
값 객체 패턴(value object pattern) - 미완성 (0) | 2021.08.26 |
Comments