이전 포스팅에 이어서 롬복을 적용하는 것을 해보겠습니다! 이전 코드에 롬복을 적용하겠습니다
롬복이 무엇인지에 대해 궁금하시다면 다음 링크를 참조해주세요 =)
soohyun6879.tistory.com/26?category=886455
1. 라이브러리 추가 및 플러그인 다운
buid.gradle 파일의 dependencies에 다음 문장을 추가해줍니다
compile('org.projectlombok:lombok')
[File] - [Settings] - [Plugins] 에서 Lombok을 검색한 후 "Install"을 눌러 설치해줍니다
2. 다음과 같이 패키지와 파일을 만들어줍니다
3. HelloResponseDto
@Getter
@RequiredArgsConstructor
public class HelloResponseDto {
private final String name;
private final int age;
}
@Getter - 따로 get메소드를 만들어주지 않고 롬복을 이용해 get메소드를 만들어줄 수 있습니다
@RequiredArgsConstructor - 모든 final 필드에 대해 생성자를 생성해줍니다. 의존성 주입의 편의성을 위해 사용됩니다
4. HelloResponseDto
public class HelloReponseDtoTest {
@Test
public void 롬복테스트() {
//given
String name = "HongGildong";
int age = 20;
//when
HelloResponseDto dto = new HelloResponseDto(name, age);
//then
assertThat(dto.getName()).isEqualTo(name);
assertThat(dto.getAmount()).isEqualTo(age);
}
}
assertThat() - assertj의 검증 메소드로 값을 비교할 수 있습니다 검증하고 싶은 것을 메소드 인자로 받습니다
isEqualTo() - 비교 메소드로 인자로 받은 값과 같은지 비교합니다
assertThat(dto.getName()).isEqualTo(name); - dto의 name 값을 가져와 name과 값이 같은지 비교합니다
5. HelloController
이전 코드에 다음 코드를 추가합니다
@GetMapping("/hello/dto")
public HelloResponseDto helloDto(@RequestParam("name") String name, @RequestParam("age") int age) {
return new HelloResponseDto(name, age);
}
@RequestParam - 외부에서 API로 넘긴 파라미터를 가져옵니다
@RequestParam("name") String name - 외부에서 name으로 넘긴 파라미터를 가져와서 name변수에 저장합니다
6. HelloControllerTest
이전 코드에 다음 코드를 추가합니다
@Test
public void helloDto리턴() throws Exception {
String name = "HongGildong";
int age = 20;
mockMvc.perform(
get("/hello/dto")
.param("name", name).param("age", String.valueOf(age)))
.andExpect(status().isOk())
.andExpet(jsonPath("$.name",is(name)))
.andExect(jsonPath("$.age",is(age)));
}
param - 요청할 파라미터를 설정합니다, 넘겨주는 값은 String만 가능하므로 age는 형변환을 해줍니다
.param("name", name) - name인 "HongGildong"을 name으로 넘겨줍니다
jsonPath() - JSON 응답값을 검증하는 메소드입니다. "$.필드명" 으로 원하는 필드를 검증합니다
.andExpet(jsonPath("$.name",is(name))) - name 필드를 name인 "HongGildong" 인지 검증합니다
'Back-end > Spring' 카테고리의 다른 글
[SpringBoot] Spring Data JPA로 게시판 만들기(4) - 수정/조회 API (0) | 2020.11.22 |
---|---|
[SpringBoot] Spring Data JPA로 게시판 만들기(3) - 등록 API (0) | 2020.11.16 |
[SpringBoot] Spring Data JPA로 게시판 만들기(2) - repository테스트 코드 작성 (0) | 2020.11.16 |
[SpringBoot] Spring Data JPA로 게시판 만들기(1) - domain, repository 생성 (0) | 2020.11.16 |
[SpringBoot] Controller 만들고 테스트 코드 작성해보기 (0) | 2020.11.09 |