[스프링부트] 2.3 롬복 사용하기

Bummy·2022년 8월 11일
0

springboot

목록 보기
3/15

롬복은 자바 개발자들의 필수 라이브러리로 자주 사용하는 Getter, Setter, 기본 생성자, toString 등을 어노테이션으로 자동 생성해준다.

1. 롬복 설치하기

롬복을 사용하기 위해선 build.gradle에 코드를 추가해야한다.

다음 코드를 추가해주고 gradle을 새로고침해준다.

책에서는 롬복 플러그인을 설치하라고 안내했지만 최신 버전의 인텔리제이는 롬복 플러그인이 기존에 설치되어 있는 것같다.

2. Hello Controller 롬복으로 전환하기

HelloResponseDto 파일을 만들어 주고

@Getter //선언된 모든 필드의 get 메소드를 생성해준다.
@RequiredArgsConstructor//선언된 모든 final 필드가 포함된 생성자를 생성해준다.
public class HelloResponseDto {

    private final String name;
    private final int amount;
}

코드는 다음과 같이 작성해주었다.

  • Getter : 선언된 모든 필드의 get 메소드를 생성해준다.
  • RequiredArgsConstructor : 선언된 모든 final 필드가 포함된 생성자를 생성해준다.

3. Hello Controller Test 코드 만들기

HelloControllerDto를 테스트하기 위해 테스트 코드를 작성해준다.

public class HelloResponseDtoTest {

    @Test
    public void 롬복_기능_테스트() {
        //given
        String name = "test";
        int amount = 100;

        //when
        HelloResponseDto dto = new HelloResponseDto(name, amount);

        //then
        assertThat(dto.getName()).isEqualTo(name);
        assertThat(dto.getAmount()).isEqualTo(amount);
    }
}
  • assertThat : 테스트 검증 라이브러리의 검증 메소드, 검증하고 싶은 대상을 메소드 인자로 받음
  • isEqualTo : 동등 비교 메소드

테스트 코드를 실행해보면

이렇게 정상적으로 작동하는 것을 확인할 수 있다.

4. HelloController에도 ResponseDto 사용하기

@GetMapping("/hello/dto")
    public HelloResponseDto helloDto(@RequestParam("name") String name, @RequestParam("amount") int amount){
        //@RequestParam 은 외부에서 API로 넘긴 파라미터를 가져오는 어노테이션
        return new HelloResponseDto(name, amount);
    }
  • RequestParam : 외부에서 API로 넘긴 파라미터를 가져오는 어노테이션

추가된 API를 테스트하기 위해 다시 한번 테스트 코드를 작성해준다.

@Test
    public void helloDto가_리턴된다() throws Exception{
        String name = "hello";
        int amount = 10000;

        mvc.perform(get("/hello/dto")
                        .param("name", name).
                        param("amount", String.valueOf(amount))
                )
                .andExpect(status().isOk())
                .andExpect(jsonPath("$.name", is(name)))
                .andExpect(jsonPath("$.amount", is(amount)));

        /*
        param : API 테스트할 때 사용될 요청 파라미터를 설정함, 값은 String만 허용하며 숫자나 날짜 등의 데이터도 문자열로 변경해야함

        jsonPath : JSON 응답값을 필드별로 검증할 수 있는 메소드, $를 기준으로 필드명을 명시, 여기서는 name, amount를 검증
         */
    }
  • param : API 테스트할 때 사용될 요청 파라미터를 설정함, String만 사용할 수 있으며 숫자나 날짜도 String으로 변환해서 사용해야한다.
  • jsonPath : JSON 응답값을 필드별로 검증할 수 있는 메소드, $를 기준으로 필드명을 명시함

테스트를 진행해보면

이렇게 정상적으로 작동하는 것을 확인할 수 있다.

0개의 댓글