스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - 단위테스트

lacblueeun·2020년 12월 5일
0

springboot

목록 보기
2/17
post-thumbnail

1. Application 클래스

Application 클래스는 앞으로 만들 프로젝트의 메인클래스가 된다.

@SpringBootApplication : 스프링 부트의 자동 설정, 스프링 Bean 읽기와 생성을 모두 자동으로 설정할 수 있다. 특히 이 위치부터 설정을 읽기 때문에 항상 프로젝트의 최상단에 위치해야만 한다.

SpringApplication.run : 별도로 외부의 WAS를 두지 않고 애플리케이션을 실행할 때 내부에서 WAS를 실행한다. 항상 서버에 톰캣을 설치할 필요가 없게 되고, 스프링 부트로 만들어진 Jar파일로 실행한다.

🔑 내장 WAS를 사용하는 이유는, 언제 어디서나 같은 환경에서 스프링 부트를 배포 할 수 있기 때문이다. 외장 WAS를 사용하면 종류와 버전을 일치 시켜야 하고, 새로운 서버가 추가되면 모든 서버가 같은 환경을 구축해야만 하기 때문입니다. (팀원들과 프로젝트를 진행하면서 서버때문에 고생을 했었다..)

2. 스프링부트 컨트롤러

2-1 컨트롤러 테스트

@RestController : 컨트롤러를 JSON을 반환하는 컨트롤러로 만들어 줍니다. 프로젝트에서 사용했지만 더 공부가 필요할 것 같다.

@RunWith(SpringRunner.class) : 테스트를 진행할 때 Junit에 내장된 실행자 외에 다른 실행자를 실행, 스프링부트 테스트와 Junit 사이에 연결자 역할
@WebMvcTest : spring MVC에 집중할 수 있는 어노테이션이다.
MockMvc : 웹 API를 테스트할 때 사용한다. 스프링 MVC 테스트의 시작이다.
mvc.perform(get("/hello")) : HTTP GET 요청을 한다.
andExpect(status().isOK()) : HTTP Headers의 Status를 검증한다. 흔히 알고 있는 200, 400, 500 등의 상태를 검증한다.
andExpect(content().string(hello)) : 결과를 검증한다. 응답 본문의 내용을 검증한다. Controller 에서 hello를 리턴하기 때문에 이 값이 맞는지 검증합니다.

2-2 컨트롤러 테스트

param : API 테스트할 때 사용도리 요청 파라미터를 설정한다. 단 값은 String만 허용하기 때문에 숫자/날짜 등의 데이터도 등록할 때 문자열로 변경해야만 가능하다.
jsonPath : JSON 응답값을 필드별로 검증할 수 있다. $를 기준으로 필드명을 명시한다. $ root를 명시하고 .을 통해 원하는 필드명을 검증할 수 있다.

profile
Go for Frontend Developer 🧪

0개의 댓글