테스트 코드를 이용한 테스트
테스트 코드를 작성하여 하는 테스트는 여러 이름으로 불리우지만 개발자가 진행하는 테스트라는 의미로 해석하면 이해하는데 무리는 없을듯 합니다.
기존에 구성하였던 HelloApi를 JUnit을 기반으로 테스트 코드를 작성해보도록 하겠습니다.
package com.tobyspring.tobyspringboot;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.web.client.TestRestTemplate;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import static org.assertj.core.api.Assertions.*;
public class HelloApiTest {
// JUNIT 테스트 코드
@Test
void helloApi() {
// http localhost:8080/hello?name=Spring
/* 테스트 목적일때는 RestTemplate 보다는 TestRestTemplate를 사용하는게 좋다.
그 이유는 RestTemplate는 오류가 발생할경우는 예외가 발생하는데 반해 TestRestTemplate는
오류가 발생한 경우에도 예외를 발생시키지않고 해당 응답 결과를 반환해 줍니다. 따르서 검증하기
용이합니다.
*/ TestRestTemplate rest = new TestRestTemplate();
ResponseEntity<String> response
= rest.getForEntity("http://localhost:8080/hello?name={name}", String.class, "Spring");
/*
응답 검증 State code: 200
헤더 검증 header: (content-type): text/plain
응답 바디 검증body: Hello Spring
*/
assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
assertThat(response.getHeaders().getFirst(HttpHeaders.CONTENT_TYPE)).startsWith(MediaType.TEXT_PLAIN_VALUE);
assertThat(response.getBody()).isEqualTo("Hello Spring");
}
}
'Spring > 인프런 토비의 Spring Boot' 카테고리의 다른 글
섹션 5-3 [DI와 테스트, 디자인 패턴] DI를 이용한 Decorator, Proxy 패턴 (0) | 2024.06.12 |
---|---|
섹션 5-2 [DI와 테스트, 디자인 패턴] DI와 단위 테스트 (0) | 2024.06.12 |
섹션 4-11 [독립 실행형 스프링 애플리케이션] SpringBootApplication (0) | 2024.06.01 |
섹션 4-10 [독립 실행형 스프링 애플리케이션] Bean 생명주기 메소드 (0) | 2024.06.01 |
섹션 4-9 [독립 실행형 스프링 애플리케이션] @Conponent 스캔 (0) | 2024.06.01 |