프로필 뷰 에러는 어떻게 테스트 해볼 수 있을 까요?
326
작성한 질문수 2
이번 강좌에서 존재하지 않는 닉네임으로 접근하면
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());
이건 에러메세지 까지 비교하는데
어떤방법으로 테스트 하는게 좋을까요?
참고 :
https://www.baeldung.com/junit-assert-exception
https://www.python2.net/questions-151506.htm
답변 2
1
assertThatThrownBy(() -> mockMvc.perform(get("/profile/{nickname}", nickname)))
.hasCauseInstanceOf(IllegalArgumentException.class);
이렇게하니까 통과합니다.
0
IllegalArgumentException이 발생하는 상황을 테스트로 검증하고 싶다는 것이죠?
보여주신 코드에서는 org.assertj.core.api.Assertions.Assertions.assertThatThrownBy(() -> mockMvc.perform(get("/profile/{nickname}", nickname))).hasCause(new IllegalArgumentException());
이게 제일 직관적이고 좋아 보이긴하는데 실제로 작성하신 코드를 깃헙에 올려서 공유해 주시면 좀 더 살펴보겠습니다.
0
컨트롤러
테스트
입니다.
이전에 junit4로 테스트 할 때는
@Test(에러.class)로 했던걸로 기억나는데
기선님은 어떤방식으로 처리했을지 궁금해서 남겼습니다~
Study 개설하는 로직에 대해서 궁금점이 있습니다.
0
56
1
앱 재시작 후 회원가입
0
104
1
app.host 관련 질문이 있습니다
0
98
1
강의 버전 정보
0
127
1
event, study 참조
0
222
2
비밀번호 변경 로직 질문있습니다.
0
136
1
프로필 수정 처리 merge 질문입니다.
0
108
1
회원가입 성공 후 redirect이동시 권한 질문
0
497
3
HtmlEmailService 개발하다 생긴 의문입니다
0
252
2
postgreSql 연결하여 JPA 를 통해 테이블 생성시 ZONE 테이블 생성에서 에러가 납니다
0
432
2
수업질문 [긴급] 로그인안되는 문제 말씀해주시는 부분 반영해서 최종 질문드립니다
0
264
2
[긴급-재업로드]수업질문 로그인 안 되는 문제
0
237
1
[긴급] 로그인해도 네비게이션 바가 안 바뀌고 있습니다!! 로그인이 안 됩니다 도와주세요
0
278
1
cropper 오류 문제로 질문드립니다..
0
289
2
authentication관련 질문...
0
498
2
모임참가 취소 할때 로직 질문
0
351
3
안녕하세요 기선님 질문이있습니다..
0
230
1
HTML코드 및 강의 중간자료들
0
680
3
springSecurity
0
525
2
버전 질문입니다.
0
304
1
부트스트랩, css
0
357
2
영속성 컨텍스트 질문
0
252
2
다시 강의를 보니 드는생각..
0
355
2
5:50에 나오는 HTML코드는 어디서 찾을 수 있나여?
0
316
1





