inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링과 JPA 기반 웹 애플리케이션 개발

프로필 뷰

프로필 뷰 에러는 어떻게 테스트 해볼 수 있을 까요?

326

1q2w3e4r

작성한 질문수 2

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());
이건 에러메세지 까지 비교하는데 

어떤방법으로 테스트 하는게 좋을까요?

참고 : 

https://www.baeldung.com/junit-assert-exception

https://www.python2.net/questions-151506.htm

테스트 spring-boot thymeleaf spring JPA java

답변 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

1q2w3e4r

컨트롤러 

https://github.com/seunghwan-won/zzzz/blob/step-17-profile-view/src/main/java/com/studyolle/account/AccountController.java

테스트 

https://github.com/seunghwan-won/zzzz/blob/step-17-profile-view/src/test/java/com/studyolle/account/AccountControllerTest.java

입니다.

이전에 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