회고
자료구조
- 'Do it 알고리즘 자바편' 1독 완료 및 책리뷰 원고 작성
백기선 스프링 강의
오늘 수강
- 스프링 빈
- 의존성 주입
- 스프링 AOP
- 프록시 패턴
Spring MVC 테스트 코드
치명적인 단점
- MVC 테스트는 Controller가 작동을 하는 지 안하는 지만 체크할 뿐 서버에서 제대로 동작하는 지는 알 수 없다. 만약 컨트롤러가 잘못된 view를 리턴하더라도 테스트 코드에서는 컨트롤러가 잘못된 view를 리턴하고 있는지 테스트하면 통과할 수 있다.
발생 버그
- Pet-Clinic 테스트 코드를 보며 UserController 테스트 코드를 작성했는데 @WebMvcTest(UserController.class) 사용 시 빌드 실패. 스택오버 플로우를 찾아보니 아래와 같은 어노테이션 사용.
@SpringBootTest
@AutoConfigureMockMvc
public class UserControllerTests {
- 원인) @WebMvcTest는 전체 설정을 활성화하지 않고 MVC와 관련된 기능만 활성화한다고 한다.
UserController 테스트 코드 작성
- 회원가입 폼 method 테스트
@Test
void testCreateForm() throws Exception {
mockMvc.perform(get("/users/form")).andExpect(status().isOk()).andExpect(view().name("user/form"));
}
코드 설명) mockMvc는 공부가 필요하지만 서버 대신해서 테스트를 도와주는 객체같다. perform 메서드 내에 요청 메서드와(GET) url을 작성한다.
andExpect()는 상태 코드나 view가 원하는 값대로 보여지는 지 확인하는 메서드이다.
회원가입 method 테스트
@Test
void testCreate() throws Exception {
mockMvc.perform(post("/users/create").requestAttr("user", new User())).andExpect(status().is3xxRedirection());
}
- 코드설명) requestAttr은 클라이언트가 보내는 엔티디의 정보를 나타낸다. 회원가입할 때 클라이언트는 모든 속성을 User 객체에 담아서 보내기 때문에 저렇게 나온다.
Postman 사용법
- https://www.postman.com/downloads/에서 설치 한다.
- 요청할 method를 설정하고 url을 입력한다. ex) http://localhost:8080/users/create. 만약 post일 경우 body에 key-value로 사용하면 된다.
- 유용한 기능 4가지
- Collections : request API를 저장해서 사용 가능.
- Code Generate : 성공한 request를 코드로 만들어줌
- Manage environments : 변수 관리
- interceptor
'TIL(Today I Learned)' 카테고리의 다른 글
20.03.22) TIL (0) | 2020.03.23 |
---|---|
20.03.21) TIL (0) | 2020.03.21 |
20.03.19) TIL (0) | 2020.03.20 |
20.03.18) TIL (0) | 2020.03.19 |
20.03.17) TIL (0) | 2020.03.17 |