본문 바로가기

강의 내용 정리/SpringBoot 정리

2-6강 RESTful Web Services 구현(4) Mockmvc, mock

클라이언트는 서버에게 요청 시 응답은 .jsp 아니면 .html 같은 파일

지금은 JSON으로 주고 받음.

 

 원서버(데이터 있는 서버) 가기 전에 프록시서버를 둔다. 서버는 프록시서버를 통해서 모든 요청을 받는다.

클라이언트는 원서버에 바로 가지 못한다. 

프록시서버와 원서버 간의 통신은 JSON형태의 데이터를 주고받음. 그래서 그 사이에 별도로 Service layer가 들어오게 됨. ( JSON으로 주고  받기 위함. )

프록시서버에서 JSON으로 데이터 받아서 원서버의 Service에서 JSON을 POJO 객체로 변환해줌.

JSON데이터를 받고 , 내보내는 기능을 구성해주는 것이 RestController이다.

 

 

 

그래서 @RestController 붙여줌.

 

 

 

우리는 프록시서버를 구성하진 않았지만 frontcontroller인 DS을 통해서 클라이언트의 요청을 받는다.

그 요청을 맞는 Controller에 위임한다. 그 후 -> Service -> Store -> DB -> Store -> Service -> Controller -> DS -> client

 

 

 

 

 

하나하나 생각해봐.

 

 

 

 

 

modify 할 때 값 저렇게 넣어야함. 잘 생각해보기 . UserStoreLogic에서 바디에 보낸 아이디값을 키값으로 뒤의 name, email을 최신으로 수정함.

 

 

포스트맨으로 확인하기 = view없이 확인하기

 

 

 

----------------------------------------------------------------------------------------------------------------

# UserController 단위 테스트

 

 

MockMvc 는 임의적으로 post, get 등의 요청을 보낼 수 있게 해주는 클래스. @Autowired로 주입받아야함.

 

단위테스트는 생성자주입 안됨. -> 필드 주입만.!

이렇게 @AutoConfigureMockMvc 해야 주입을 받을 수 있다.

아니면

@WebMvcTest 를 붙인다. 뒤는 내가 UserController 클래스를 테스트 하겠다 라는 뜻

 

( 결국 @WebMvcTest 없애고 @AutoConfigureMockMvc로 해결함. )

----------------------------------------------------------------------------------------------------------------------------------------

 

 

회원가입 테스트. 어려움. 이해 안되면 pass.

 

1. 새로운 유저 데이터를 만들고

2. objectMapper로 JSON 형태로 변환

3. mockMvc 를 이용해서 post 방식으로 /users 라는 uri로 post 요청을 보내는데

4. 우리가만든 샘플 데이터 content를 바디에 JSON형태로 보내주고

5. 헤더 contentType, accept

6. except 는 200 OK를 기대한다는 뜻 ( 맞으면 True )

7. 마지막에 print해라

 

이런식으로 볼 수 있다.

 

Mock을 쓰면 포스트맨 사용 안해도된다.

 

이렇게 한 번 만들어 놓으면 나중에 프로그램을 다 만들고 패키징을해서 배포하려면 

패키징을 할 때

자동으로 단위 테스트가 실행된다.(패키징할때 한 번 더(수정한내용을) 자동으로 확인가능)

 

Recent Posts
Popular Posts
Recent Comments