🕶 롬복(Lombok) 의존성을 추가해보자!
- 롬복을 사용하기전에 의존성을 추가해야합니다. 그러므로 build.gradle 파일에 가서 compileOnly 'org.projectlombok:lombok:1.18.22' 을 추가해 줍니다,
- 빌드를 실행하고 플러그인에 가서 Lombok 을 설치해 줍니다.
🕶 의존성을 추가해줬다면 롬복기능을 사용해보자!
지금의 프로젝트처럼 작은 규모가 아닌 큰 규모에 프로젝트였다면 롬복으로 전환이 쉽게 됬을 까요??
쉽지 않았을 겁니다. 매번 코드에 Lombok 기능을 추가하고 코드를 수정하고 반복적인 작업이 될겁니다.
그리고 수정한기능이 제데로 작동하는지 알 수 가 없었을 겁니다.
하지만 지난 시간에 작성한 테스트 코드 로 인해 쉽게 검증을 할 수 있습니다.
이러한 이유로 테스트 코드가 아주 효율적이다라는 것을 알 수 있습니다.
앞으로는 모든 응답 Dto는 web 패키지 안에 dto 패키지를 만들어 사용하겠습니다.
간단한 HelloResponseDto 를 만들어 롬복기능을 추가하고 기능을 테스트 해보겠습니다.
🕶 HelloResponseDto.class 생성
@Getter -> 1
@RequiredArgsConstructor -> 2
public class HelloResponseDto {
private final String name;
private final int amount;
}
- @Getter 는 선언되는 모든 필드의 get 메서드를 생성해줍니다.
- 선언되는 필드중에 final 이 붙어져 있는 필드의 생성자를 생성해줍니다.
🕶 HelloResponseDtoTest.class 생성
class HelloResponseDtoTest {
@Test
@DisplayName("롬복 기능 테스트")
void HelloResponseDtoTest() {
// given
String name = "스폰지밥";
int amount = 1000;
// when
HelloResponseDto dto = new HelloResponseDto(name, amount);
// then
assertThat(dto.getName()).isEqualTo(name); -> 1
assertThat(dto.getAmount()).isEqualTo(amount); -> 2
}
}
- assertj 라는 테스트 검증 라이브러의 검증 메서드입니다. 검증하고 싶은대상을 메서드 인자로 받습니다. 메서드 체이닝이 지원되어 isEqualTo 등 과 같이 메서드를 이어서 사용할 수 있습니다.
- assertj 의 동등 비교 메서드입니다. 비교해서 같을 때만 테스트가 성공합니다.
다음에는 HelloController.class 를 수정해봅시다.
🕶 HelloController.class 를 수정해보자!
@GetMapping("/hello/dto")
public HelloResponseDto helloDto(@RequestParam("name")String name, -> 1
@RequestParam("amount")int amount) {
return new HelloResponseDto(name, amount);
}
- @ResquestParam 은 외부에서 api로 넘긴 파라미터를 가져오는 기능입니다.
🕶 HelloControllerTest.class 를 작성해보자.
@Test
@DisplayName("HelloResponseDto 가 반환된다.")
void helloDto()throws Exception {
// given
String name = "스폰지밥";
int amount = 1000;
// when && then
mvc.perform(get("/hello/dto")
.param("name", name) -> 1
.param("amount", String.valueOf(amount)))
.andExpect(status().isOk())
.andExpect(jsonPath("$.name",is(name))) -> 2
.andExpect(jsonPath("$.amount",is(amount)));
}
- api 테스트할 때 사용될 요청 파라미터를 설정합니다. 설정 값은 String 문자열 만 허용됩니다.
- json 응답값을 필드별로 검증할 수 있는 메서드입니다. $를 기준으로 필드명을 명시하고 $.name, $.amount 로 검증합니다.
'Book > Spring boot 와 AWS로 혼자 구현하는 웹서비스' 카테고리의 다른 글
[Book] 9) API 만들어보기! - 2 (0) | 2022.03.30 |
---|---|
[Book] 8) API 만들어보기! - 1 (0) | 2022.03.30 |
[Book] 7) 출력되는 쿼리문을 MySQL 문법으로 수정 후 이슈 (0) | 2022.03.30 |
[Book] 6) JPA 로 데이터베이스를 다루어보자! (0) | 2022.03.29 |
[Book] 4) HelloController 생성과 테스트를 해보자! (0) | 2022.03.27 |
[Book] 3) 테스트 코드를 작성해보자! (0) | 2022.03.27 |
[Book] 2) 인텔리제이에서 깃허브와 연동해보자! (0) | 2022.03.27 |
[Book] 1) 프로젝트를 만들고 의존성을 추가해보자! (0) | 2022.03.27 |