Spring : Lombok

cad·2021년 12월 12일
0

Spring

목록 보기
4/15

기능

  • 자바 개발 시 자주 사용하는 코드 Getter, Setter, 기본생성자, toString 등을 어노테이션으로 자동 생성해준다.

DTO 작성

/**
 * @Getter : 선언된 모든 필드에 get 메소드 생성
 * @RequiredArgsConstructor : 선언된 모든 final 필드가 포함된 생성자를 생성해준다.
 * final 이 없는 필드는 생성자에 포함 X
 */
@Getter
@RequiredArgsConstructor
public class HelloResponseDto {

  private final String name;
  private final int amount;
}

Test Code 작성


public class HelloResponseDtoTest {

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

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

    //then
    assertThat(dto.getName()).isEqualTo(name);
    assertThat(dto.getAmount()).isEqualTo(amount);
  }
}
  • assertThat
    • assertj 라는 테스트 검즈 라이브러리
    • 검증하고자 하는 대상을 메소드 인자로 받음
    • 메소드 체이닝으로 isEqualTo와 같이 메소드로 이어서 사용 가능
  • isEqualTo
    • assertThat의 값과 같으면 성공

@RequiredArgsConstructor 로 생성자가 자동으로 생성되는 것이 증명되었습니다!

  @GetMapping("/hello/dto")
  public HelloResponseDto helloDto(@RequestParam("name") String name,
                                   @RequestParam("amount") int amount) {
    return new HelloResponseDto(name, amount);
  }
  • @RequestParam
    • 외부에서 API로 넘긴 파라미터를 가져오는 어노테이션
    • name, amount 를 전해받아 Dto에 저장
  @WithMockUser(roles="USER")
  @Test
  public void helloDto가_리턴된다() throws Exception {
    String name = "hello";
    int amount = 1000;

    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)));
  }

profile
Dare mighty things!

0개의 댓글