SpringBoot/프로젝트
Test Code 작성
PeepPeep!
2023. 11. 27. 13:45
Test Code 란 ?
의도된 대로 정확히 작동하는지 검증하는 절차
- 작성한 코드가 제대로된 기능을 수행하는지 검증
- 빠른 시간에 테스트 가능
성공하는 경우 Test
@Test
void helloApi(){
TestRestTemplate rest = new TestRestTemplate();
ResponseEntity<String> res =
rest.getForEntity("http://localhost:8080/hello?name={name}", String.class, "Spring");
assertThat(res.getStatusCode()).isEqualTo(HttpStatus.OK);
assertThat(res.getHeaders().getFirst(HttpHeaders.CONTENT_TYPE)).startsWith(MediaType.TEXT_PLAIN_VALUE);
assertThat(res.getBody()).isEqualTo("*HelloSpring*");
}
TestRestTemplate rest = new TestRestTemplate();
- RestTemplate : 오류나면 예외를 던짐
- TestRestTemplate : 오류나도 해당 결과값을 보내줌
응답 검증 3가지
assertThat(res.getStatusCode()).isEqualTo(HttpStatus.OK);
1.statis code 200 ,enum값과 일치하는 지 학인 -> HttpStatus.OK
static + import 단축키 alt + Enter
assertThat(res.getHeaders().getFirst(HttpHeaders.CONTENT_TYPE)).startsWith(MediaType.TEXT_PLAIN_VALUE);
2. header(content-type) text/plain
assertThat(res.getBody()).isEqualTo("*HelloSpring*");
3. body Hello Spring
실패하는 경우
//실패하는 테스트
@Test
void failHelloApi(){
TestRestTemplate rest = new TestRestTemplate();
ResponseEntity<String> res =
rest.getForEntity("http://localhost:8080/hello?name=", String.class);
assertThat(res.getStatusCode()).isEqualTo(HttpStatus.INTERNAL_SERVER_ERROR);
}