롬복은 getter, setter, 기본 생성자, toString 등을 어노테이션으로 자동 생성해줍니다. 인텔리제이에서는 플러그인으로 쉽게 설정이 가능합니다.
롬복(Lombok) 추가하기
- build.gradle 파일에 compile('org.projectlombok:lombok:')을 추가한 뒤 새로고침을 해주어 라이브러리를 내려받습니다.
- 롬복 플러그인을 설치합니다.
Command + Shift + A (맥 기준) 단축키 후 Plugins를 입력해 설치 팝업으로 이동합니다. - Marketplace 탭에서 Lombok을 검색해 설치한 뒤 인텔리제이를 재 시작합니다.
플러그인 설치는 한 번만 하면 되지만, build.gradle에 라이브러리를 추가하는 것과 Enable annotation processing을 체크하는 것은 프로젝트마다 진행해야만 합니다.
DTO에 롬복(Lombok) 적용하기
접근자/설정자 자동 생성
클래스 수준에 Annotation을 선언해주는 것입니다.
- @Getter
선언된 변수에 대해 getOOO 메서드를 자동으로 생성합니다. - @Setter
선언된 변수에 대해 setOOO 메서드를 자동으로 생성합니다.
생성자 자동 생성
클래스 수준에 Annotation을 선언해주는 것입니다.
- @RequiredArgsConstructor
final 혹은 @NonNull 변수만 생성자의 파라메터로 받는 생성자를 생성합니다. 이때 final이 없는 필드는 생성자에 포함되지 않습니다. - @NoArgsConstructor
파라미터가 없는 기본 생성자를 생성합니다. - @AllArgsConstructor
모든 변수를 파라미터로 받는 생성자를 생성합니다.
DTO 테스트
- assertThat
assertj라는 테스트 검증 라이브러리의 검증 메소드입니다.
검증하고 싶은 대상을 메서드 인자로 받습니다.
메소드 체이닝이 지원되어 isEqualTo와 같이 메서드를 이어서 사용할 수 있습니다. - isEqualTo
assertj의 동등 비교 메서드입니다.
assertThat에 있는 값과 isEqualTo의 값을 비교해 같을 때에만 성공입니다.
성공할 경우 위와 같이 통과함을 확인할 수 있습니다.
JUnit의 assertThat VS assertj의 assertThat
- assertj의 장점은 CoreMatchers와 달리 추가적인 라이브러리를 필요하지 않습니다.
JUnit의 assertThat을 사용하면 is()와 같이 CoreMatchers 라이브러리가 필요합니다. - 자동완성이 좀 더 확실하게 지원됩니다.
IDE에서는 CoreMatchers와 같은 Matcher 라이브러리의 자동완성 지원이 약합니다.
즉, Matcher는 메서드를 외우거나 서칭하며 사용해야 하는데, assertj 라이브러리의 assertThat은 외우지 않아도 됩니다.
DTO 테스트
[ import static org.hamcrest.Matchers.is; ]를 import 받았습니다.
JSON이 리턴되는 API 또한 테스트가 통과되는 것을 확인할 수 있습니다.
'Development > Spring Framework' 카테고리의 다른 글
스프링 부트에서 JPA 사용하기 (2) (0) | 2021.05.03 |
---|---|
스프링 부트에서 JPA 사용하기 (1) (0) | 2021.05.03 |
스프링 부트에서 테스트 코드 작성 (0) | 2021.05.02 |
인텔리제이로 스프링부트 시작하기 (IntelliJ, Spring Boot) (0) | 2021.05.02 |
스프링디자인패턴(4) 싱글턴 패턴 - Singleton Pattern (0) | 2021.04.02 |