728x90
반응형
롬복이란?
롬복은 자바 개발에서 자주 쓰이는 Getter, Setter, 기본 생성자 등을 어노테이션으로 자동 생성해준다.
프로젝트에 롬복 라이브러리 다운로드
build.gradle에
implementation('org.projectlombok:lombok')
추가 후 gradle을 새로고침해준다.
롬복 플러그인 설치는 플러그인 마켓에서 설치한 뒤
여기를 체크해주면 된다.
플러그인은 한번 설치하면 되지만 해당 과정은 프로젝트 마다 설정해줘야한다.
롬복 테스트
package com.jojoldu.book.springboot.web.dto;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
@Getter
//선언된 모든 필드의 get메소드 생성
@RequiredArgsConstructor
//선언된 모든 final필드가 포함된 생성자 생성.
public class HelloResponseDto {
private final String name;
private final int amount;
}
참고로 위 코드는 gradle4버전에서만 실행되고 상위버전에서는 다르게 설정해줘야한다.
테스트 코드
package com.jojoldu.book.springboot.dto;
import org.junit.Test;
import com.jojoldu.book.springboot.web.dto.HelloResponseDto;
import static org.assertj.core.api.Assertions.assertThat;
public class HelloResponseDtoTest {
@Test
public void 롬복_기능_테스트(){
//given
String name = "test";
int amount = 1000;
//when
HelloResponseDto dto = new HelloResponseDto(name, amount);
//then
//assertThat : 검증 메소드, 검증 대상을 인자로 받음
assertThat(dto.getName()).isEqualTo(name);
assertThat(dto.getAmount()).isEqualTo(amount);
}
}
전에 작성했던 HelloController에 롬복을 활용하여 추가로 메소드를 작성해준다.
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello(){
return "hello";
}
@GetMapping("/hello/dto")
public HelloResponseDto helloDto(@RequestParam("name") String name, @RequestParam("amount") int amount){
return new HelloResponseDto(name, amount);
}
}
@RequestParam은 API를 호출하는 곳에서 넘겨준 값이다. 해당 API를 테스트하기 위해 코드를 작성해준다.
@Test
public void helloDto가_리턴() throws Exception{
String name = "hello";
int amount = 1000;
mvc.perform(get("/hello/dto")
.param("name", name) //API 테스트에 사용되는 파라미터 설정. 단, 스트링만 가능. 숫자와 날짜는 문자열로 변경해줘야함
.param("amount", String.valueOf(amount)))
.andExpect(status().isOk())
.andExpect(jsonPath("$.name", is(name))) //json 응답값을 필드별로 검증. $을 기준으로 필드명을 명시해준다.
.andExpect(jsonPath("$.amount", is(amount)));
}
참고
http://www.yes24.com/Product/Goods/83849117
스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - YES24
가장 빠르고 쉽게 웹 서비스의 모든 과정을 경험한다. 경험이 실력이 되는 순간!이 책은 제목 그대로 스프링 부트와 AWS로 웹 서비스를 구현한다. JPA와 JUnit 테스트, 그레이들, 머스테치, 스프링
www.yes24.com
728x90
반응형
'개발 공부 > Spring' 카테고리의 다른 글
[SpringBoot] 등록/수정/조회 API 만들기 - 그리고 중단.. (0) | 2023.01.31 |
---|---|
[SpringBoot] JPA로 데이터베이스 다루기 (0) | 2023.01.28 |
[Springboot] 스프링 부트에서의 테스트 코드 (0) | 2023.01.26 |
[SpringBoot] 스프링부트 프로젝트 세팅하기 (0) | 2023.01.25 |
[Spring] 인프런 스프링 입문 강의 정리 #5 (0) | 2022.06.26 |