etc/TIL

TIL 2022-02-22 / 스프링

개발하는 민우 2022. 2. 22. 22:14

[한 것]

  • 객체지향의 사실과 오해 1장 읽고 정리하기
  • 데브싱크 프로젝트 쪽지 전송 부분 TDD 작성하기

[배운 것]

 

webmvctest를 이용한 TDD 작성법

@RunWith(SpringRunner.class)

  • 테스트를 진행할 때 Junit에 내장된 실행자 외에 다른 실행자를 실행시킵니다.
  • 여기서는 SpringRunner라는 스프링 실행자를 사용합니다
  • 즉, 스프링부트 테스트와 Junit 사이에 연결자 역할을 합니다.

@WebMvcTest

  • 여러 스프링 어노테이션 중에서, Web(Srpign MVC)에 집중할 수 있는 어노테이션입니다.
  • 선언할 경우 @Controller, @ControllerAdvice 등을 사용가능
  • 여기서는 컨트롤러의 선언 때문에 사용합니다.

@Autowired

  • 스프링이 관리하는 (Bean)을 주입받습니다

private MockMvc mvc

  • 웹 API를 테스트할 떄 사용합니다.
  • 스프링 MVC 테스트의 시작점입니다.
  • 이 클래스를 통해 HTTP, GET, POST 등에 대한 API테스트를 할 수 있습니다.

mvc.perform(get("/hello"))

  • MockMvc를 통해 /hello 주소로 HTTP GET 요청을 합니다
  • 체이닝이 지원되어 아래와 같이 여러 검증기능을 이어서 선언할 수 있습니다.

.andExpect(status().isOk())

  • mvc.perform의 결과를 검증합니다
  • Http Header의 Status를 검증합니다
  • 우리가 흔히 알고 있는 200, 404, 500 등의 상태를 검증합니다
  • 여기선 OK 즉, 200인지 아닌지를 검증합니다.

.andExpect(content().string(hello))

  • mvc.perform의 결과를 검증합니다.
  • 응답 본문의 내용을 검증합니다
  • Controller에서 "hello"를 리턴하기 떄문에 이 값이 맞는지 검증합니다.

 

[느낀점]

객체와 실생활 간의 연관성이 정말 많은듯 하다.

 

[할 것]

객체지향의 사실과 오해 2장 읽고 정리하기

토이 프로젝트 하기

알고리즘 문제 풀기

 

'etc > TIL' 카테고리의 다른 글

TIL / 2022-03-02 스프링  (0) 2022.03.03
TIL / 2022-02-25 스프링  (0) 2022.02.26
[TIL] 2022-02-18 / JWT(Json Web Token)  (0) 2022.02.19
TIL 2022-02-15 / 스프링  (0) 2022.02.16
TIL / 2022-02-11  (0) 2022.02.12