20.03.20) TIL
20.03.20) TIL
TIL(Today I Learned)
회고
자료구조
'Do it 알고리즘 자바편' 1독 완료 및 책리뷰 원고 작성 백기선 스프링 강의 오늘 수강
스프링 빈
스프링 빈 의존성 주입
의존성 주입 스프링 AOP
스프링 AOP 프록시 패턴
Spring MVC 테스트 코드
치명적인 단점
MVC 테스트는 Controller가 작동을 하는 지 안하는 지만 체크할 뿐 서버에서 제대로 동작하는 지는 알 수 없다. 만약 컨트롤러가 잘못된 view를 리턴하더라도 테스트 코드에서는 컨트롤러가 잘못된 view를 리턴하고 있는지 테스트하면 통과할 수 있다. 발생 버그
만약 컨트롤러가 잘못된 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
from http://guswns1659.tistory.com/202 by ccl(A) rewrite - 2020-03-21 00:54:23
댓글
댓글 쓰기