-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
프로필 뷰 에러는 어떻게 테스트 해볼 수 있을 까요?
21.03.27 01:11 작성 조회수 143
0
이번 강좌에서 존재하지 않는 닉네임으로 접근하면
IllegalArgumentException 이 발생하는데 어떻게 해야 테스트를 할수 있을까요?
mockMvc.perform(get("/profile/{nickname}", nickname))
.andExpect(result -> assertTrue(result.getResolvedException() instanceof IllegalArgumentException));
이렇게 하면 에러를 캐치하지 못하고
assertThrows(IllegalArgumentException.class, () ->mockMvc.perform(get("/profile/{nickname}", nickname)));
이방식으로는 스프링 래퍼 클레스인 <org.springframework.web.util.NestedServletException>이 발생했다고 나옵니다
org.assertj.core.api.Assertions.Assertions.assertThatThrownBy(() -> mockMvc.perform(get("/profile/{nickname}", nickname))).hasCause(new IllegalArgumentException());
이건 에러메세지 까지 비교하는데
어떤방법으로 테스트 하는게 좋을까요?
참고 :
답변을 작성해보세요.
1
임도현
2022.07.22
assertThatThrownBy(() -> mockMvc.perform(get("/profile/{nickname}", nickname)))
.hasCauseInstanceOf(IllegalArgumentException.class);
이렇게하니까 통과합니다.
0
백기선
지식공유자2021.03.28
IllegalArgumentException이 발생하는 상황을 테스트로 검증하고 싶다는 것이죠?
보여주신 코드에서는 org.assertj.core.api.Assertions.Assertions.assertThatThrownBy(() -> mockMvc.perform(get("/profile/{nickname}", nickname))).hasCause(new IllegalArgumentException());
이게 제일 직관적이고 좋아 보이긴하는데 실제로 작성하신 코드를 깃헙에 올려서 공유해 주시면 좀 더 살펴보겠습니다.
1q2w3e4r
질문자2021.03.29
컨트롤러
테스트
입니다.
이전에 junit4로 테스트 할 때는
@Test(에러.class)로 했던걸로 기억나는데
기선님은 어떤방식으로 처리했을지 궁금해서 남겼습니다~
답변 2