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

 

'SpringBoot > 프로젝트' 카테고리의 다른 글

자동 구성 정보 대체하기  (0) 2023.11.30
@Conditional 학습 테스트  (0) 2023.11.30
[Spring Boot] jetty 서버 구성 추가하기  (0) 2023.11.29
DI를 이용한 Decorator  (2) 2023.11.27
섹션2. 스프링 부트 시작하기  (0) 2023.11.21

+ Recent posts