롬복은 자바 개발자들의 필수 라이브러리로 자주 사용하는 Getter, Setter, 기본 생성자, toString 등을 어노테이션으로 자동 생성해준다.
롬복을 사용하기 위해선 build.gradle에 코드를 추가해야한다.
다음 코드를 추가해주고 gradle을 새로고침해준다.
책에서는 롬복 플러그인을 설치하라고 안내했지만 최신 버전의 인텔리제이는 롬복 플러그인이 기존에 설치되어 있는 것같다.
HelloResponseDto 파일을 만들어 주고
@Getter //선언된 모든 필드의 get 메소드를 생성해준다.
@RequiredArgsConstructor//선언된 모든 final 필드가 포함된 생성자를 생성해준다.
public class HelloResponseDto {
private final String name;
private final int amount;
}
코드는 다음과 같이 작성해주었다.
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);
}
}
테스트 코드를 실행해보면
이렇게 정상적으로 작동하는 것을 확인할 수 있다.
@GetMapping("/hello/dto")
public HelloResponseDto helloDto(@RequestParam("name") String name, @RequestParam("amount") int amount){
//@RequestParam 은 외부에서 API로 넘긴 파라미터를 가져오는 어노테이션
return new HelloResponseDto(name, amount);
}
추가된 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를 검증
*/
}
테스트를 진행해보면
이렇게 정상적으로 작동하는 것을 확인할 수 있다.