반응형
기존 샘플 소스에 이어서 하겠습니다.
기존에 샘플로 추가하지 않았다면 아래 링크 참고하시고요~
2021.06.07 - [Java] - [Spring-Boot] RESTApi 만들어보기 hello-world (이클립스)
src/test/java 아래에 package 아래에 class 를 생성합니다.
Naming 규칙은 테스트 하려는 Controller 뒤에 Test 를 붙히는게 좋겠네요.
package com.bryan.hello;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
public class HelloControllerTest {
@Autowired(required = true)
private MockMvc mvc;
@Test
void contextLoads() throws Exception {
String shouldReturn = "hi there~";
mvc.perform(get("/hello"))
.andExpect(status().isOk())
.andExpect(content().string(shouldReturn));
}
}
- @RunWith
JUnit에 내장된 실행자 외에 다른 실행자를 실행시키는데, 여기선 SpringRunner 실행자를 사용한다. 즉, 스프링 부터 테스트와 JUnit 사이에 연결자 역할을 한다. - @WebMvcTest
여러 스프링 테스트 어노테이션 중, Web에 집중할 수 있는 어노테이션이다.
이를 호출할 경우 @Controller, @ControllerAdvice 등을 사용할 수 있다. - @Autowired
스프링이 관리하는 빈을 주입받는다. - private MockMvc mvc
웹API를 테스트할 때 사용한다. 이 클래스를 통해 HTTP GET, POST등에 대한 API 테스트를 할 수 있다. - mvc.perform(get("/hello"))
MockMvc를 통해 /hello 주소로 HTTP GET 요청을 한다. - andExpect(status().isOk())
mvc.perform의 결과를 검증한다.
isOk()는 status가 200인지 아닌지를 검증한다. - andExpect(content().string(hello))
응답 본분의 내용을 검증한다.
Controller에서 "hello"를 정상적으로 리턴하는지 검증한다.
실행
JUnit test 결과
728x90
반응형
'Java' 카테고리의 다른 글
[Spring-Boot] Lombok "log" cannot be resolved 해결 (4) | 2021.06.28 |
---|---|
[Spring] Java Bean 자바빈 (0) | 2021.06.21 |
[Spring-boot] 수동으로 설정 초기화 (0) | 2021.06.19 |
[Spring-boot] 시작하기 전 알아야 할 것들 (0) | 2021.06.19 |
[Spring-Boot] RESTApi 만들어보기 hello-world (이클립스) (2) | 2021.06.07 |
댓글