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);
}