스프링 부트 : Restful API 서버 만들기 "TDD 단위테스트 추가" - 2 of ?
2020. 7. 10. 13:16ㆍDevelopment/[Server] 서버
728x90
TDD의 기본적 지향점, 유용함, 편리함 그런 것들은 일단 논외로 하겠습니다..
테스트 케이스를 만드는 방법은 다음과 같이 진행합니다.
(1) 스프링부트 프로젝트의 main 패키지와 같은 레벨 Depth에 test 이하 패키지 생성
(2) 프로젝트의 build.gradle 수정
(3) 인텔리제이의 설정 변경
(4) 테스트 코드를 작성하여 빌드
(1) 스프링부트 프로젝트의 main 패키지와 같은 레벨 Depth에 test 이하 패키지를 만든다.
(2) 프로젝트의 build.gradle 수정
1) dependencies 내용 추가
dependencies {
//아래 내용 추가
testCompile group: 'junit', name: 'junit', version: '4.12'
testImplementation('org.springframework.boot:spring-boot-starter-test') {
exclude module: 'junit'
}
}
2) 최상위 depth에 아래 내용 추가
tasks.test { useJUnitPlatform() }
(3) 인텔리제이의 설정을 다음과 같이 변경한다.
1) Open Module Settings
*. java와 resources 디렉토리를 각각 클릭해서 마크 색상을 선택합니다. (mark as)
(4) 테스트 코드를 작성하여 빌드해본다.
import com.sentilab.Api.Common.ApiController;
import com.sentilab.Core.StartApp;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@RunWith(SpringRunner.class)
@ContextConfiguration(classes= StartApp.class)
@WebMvcTest(ApiController.class)
public class AppTdd {
@Autowired
MockMvc mockMvc;
@Test
public void commonGetTest() throws Exception {
//테스트할 get api 경로 (실제 어플리케이션에서 만든 경로)
mockMvc.perform(get("/api/anonymous"))
//기대하는 응답코드
.andExpect(status().isOk())
//기대하는 결과값
.andExpect(content().string("{\"responseCode\":200,\"responseMsg\":\"success\"}"))
//결과 출력
.andDo(print());
}
}
*. 테스트 어노테이션이 붙은 좌측 녹색 실행 버튼 또는 툴 상단의 녹색 삼각형 실행 버튼을 클릭합니다.
*. Run 콘솔에서 결과를 확인합니다.
MockHttpServletRequest:
HTTP Method = GET
Request URI = /api/anonymous
Parameters = {}
Headers = []
Body = <no character encoding set>
Session Attrs = {}
.. 중략 ..
MockHttpServletResponse:
Status = 200
Error message = null
Headers = [Content-Type:"application/json"]
Content type = application/json
Body = {"responseCode":200,"responseMsg":"success"}
Forwarded URL = null
Redirected URL = null
Cookies = []
728x90
반응형
'Development > [Server] 서버' 카테고리의 다른 글
[Docker] 맥OS에 도커 설치 (mac docker install) - 맥에 우분투 설치 (1) (4) | 2021.02.02 |
---|---|
스프링 부트 : Restful API 서버 만들기 - 1 of ? (2) | 2020.05.15 |