• [Spring/Project] Annotationed Parameter가 있는 Controller에 대한 단위테스트 작성법

    이전 Controller 단위테스트 코드와 설명 2 글에서 통합테스트가 아닌 Controller에 대한 단위테스트로 방향을 전환한후 후, 어떻게 어노테이션이 달린 파라미터가 있는 컨트롤러 메서드에 대한 테스트를 작성할 것인지에 대한 방법을 적은 글입니다. 개요 // ApiMenuCategoryController @PostMapping("") public ResponseEntity<MenuCategory> create(@ManagerAccount Account manager, @RequestBody MenuCategoryDTO menuCategoryDTO) { MenuCategory createdCategory = menuCategoryService.create(menuCategoryDTO); return makeCreatedResponseEntity(createdCategory); }...


  • [Spring/Project] Repository Delete시 동작과 child entity 삭제

    개요 카테고리 구조의 데이터에서 카테고리 세부내용 하나를 삭제할 경우. 정상적으로 삭제되지 않는 상황이 발생한다. Category Entity @Entity @Getter @Setter @NoArgsConstructor public class MenuCategory extends AbstractEntity { @Size(min = 1, max = 50) private String name; @ManyToOne @JoinColumn(name = "parentId") @JsonIgnore private MenuCategory parent; @OneToMany(cascade = CascadeType., fetch = FetchType.EAGER) @JoinColumn(name...


  • [Spring/Project] Controller 단위테스트 코드와 설명 2

    필자는 이 테스트가 단위테스트에 적합하지 않다고 판단해 글 마지막 부분에서 이 테스트 내용들을 AcceptanceTest로 전환하기로 결정하였습니다. 또한 이 컨트롤러에 대한 단위테스트는 1번 방법으로 HandlerMethodArgumentResolver 를 Mocking하여 구현하고. 인증에 대한 단위테스트는 HandlerMethodArgumentResolverTest에 대한 단위테스트로 따로 작성하는게 옳다고 생각합니다. 개요 진행중인 스터디 프로젝트에서 컨트롤러를 수정해야할 필요가 생겼다. 마침 이 프로젝트에서 컨트롤러에 대한...


  • [Spring/Project] @WebMvcTest ComponentScan으로 인한 에러 해결기

    개요 전의 글에서 2번에 해당하는 @WebMvcTest를 이용한 테스트 작성중에 에러가 발생하였다. 요약 : 컨트롤러에 대한 단위테스트는 크게 세 방법으로 나눌 수 있습니다. Standalone Mode의 MockMVC테스트 해당 Controller외에 어떠한 빈도 띄우지 않습니다. WebApplicationContext[^1]와 함께하는 MockMVC테스트 ControllerAdvice, Filter와 환경 빈들과 함께 테스트합니다. Real Web Server로 진행하는 SpringBootTest (사실상 Integration Test) RestTemplate을 이용한...


  • [Spring/Project] Controller 단위테스트 코드와 설명 1

    개요 진행중인 스터디 프로젝트에서 컨트롤러를 수정해야할 필요가 생겼다. 마침 이 프로젝트에서 컨트롤러에 대한 테스트를 작성하지 않고 AceeptanceTest만 가지고 진행했었기 때문에, 컨트롤러 테스트를 먼저 작성하여 TDD로 컨트롤러를 작성하고자 한다. 컨트롤러 테스트의 원론에 대한 설명은 블로그 글 [Spring/번역] 컨트롤러 테스트 가이드 in Spring Boot 을 추천드립니다. 요약 : 컨트롤러에 대한 단위테스트는 크게...