private MockMvc mvc
: 웹 API 테스트(GET,POST 등) 진행시 사용합니다.
스프링 MVC 테스트의 시작점입니다.
mvc.perform(get("/hello"))
: MockMVC를 통해 /hello 주소로 HTTP GET 요청을 합니다.
체이닝이 지원됩니다.
.andExpect()
: 응답 결과를 검증합니다.
- 상태코드 : status()
.isOk() : 200
.isNotFound() : 404
.isMethodNotAllowed() : 405
.isInternalServerError() : 500
.is(int status) : status 상태코드
- 리턴하는 뷰 이름 검증 : view()
.name("example") > 리턴하는 뷰 이름이 example인가!
- 리다이렉트 응답 검증 : redirect()
redirectUrl("/example") > "/example"로 리다이렉트 되었는가?
- 모델 정보 : model()
: 컨트롤러에서 저장한 모델들의 정보를 검증한다.
- 응답 정보 검증 : content()
응답에 대한 정보를 검증해줍니다.
.andExpect(content().string(hello))
: mvc.perform 결과를 검증합니다.
응답 본문의 내용을 검증하는데,
위 코드에서는 Controller에서 hello라는 값을 리턴하는 것이 맞는지
확인하게 됩니다.
- JSON 응답값을 필드별로 검증할 수 있는 메소드 : jsonPath
.andExpect(jsonPath("$.name",is(name))
> $를 기준으로 필드명을 명시합니다.
> name을 검증합니다.
RunWith(SpringRunner.class)
@WebMvcTest(controllers = HelloController.class)
public class HelloControllerTest {
@Autowired
private MockMvc mvc;
@Test
public void hello가_리턴된다() throws Exception {
String hello="hello";
mvc.perform(MockMvcRequestBuilders.get("/hello"))
.andExpect(status().isOk())
.andExpect(content().string(hello));
}
}
.
'여니의 프로그래밍 study > Spring & Spring Boot' 카테고리의 다른 글
[스프링부트] Spring 웹 계층 (0) | 2022.03.21 |
---|---|
[스프링부트] JPA가 무엇이고, 왜 써야 하는가!? (0) | 2022.03.21 |
[스프링부트] 값 넘겨주는 유닛 테스트코드 작성하기(RequestParam) (0) | 2022.03.21 |
[스프링부트] error: variable name not initialized in the default (0) | 2022.03.21 |
[스프링부트] assertThat 인식 안되는 문제 해결 (0) | 2022.03.21 |