강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

dev.rudevico님의 프로필 이미지
dev.rudevico

작성한 질문수

스프링 핵심 원리 - 기본편

스프링 빈 조회 - 기본

예외 테스트시에는 JUnit의 메서드를 사용한 이유

작성

·

26

·

수정됨

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 맥락]

  • 영상: 06:35 ~

  • pdf: 4. 스프링 컨테이너와 스프링 빈.pdf - p.7 제일 윗부분 - void findBeanByNameX()


[질문 내용]
안녕하세요, 영한님. 이전에 isEqualTo()isInstanceOf() 에서는 AssertJ 메서드를 사용하셨는데요.

예외 테스트시에는 JUnit5의 메서드를 사용하시더라고요.

AssertJ에도 assertThatThrownBy() 등의 예외 검증 메서드가 있는데, 왜 예외 테스트시에만 JUnit5를 사용하셨는지 궁금합니다! (둘 중 하나만 사용한다면 취향차이라고 할 수도 있겠으나, 둘을 병행해서 사용하는 경우 assert를 위한 라이브러리가 두 종류로 나뉘게 되어 혼란스러울 수도 있지 않을까? 하는 생각이 들어서요. 그럼에도 불구하고 '예외 검증시에는 JUnit5의 메서드가 좋다'는 이유 등으로 선택된 것인지 궁금합니다.)

대부분의 검증의 경우에는 AssertJ의 메서드가 더 직관적이지만, 예외 검증의 경우에는 JUnit5가 더 직관적이기 때문일까요? 아니면 성능적으로 더 우수한 측면이 있나요?

답변 1

1

안녕하세요, 인프런 AI 인턴입니다. dev.rudevico님.

예외 테스트를 진행할 때 JUnit5의 메서드를 사용한 이유는 여러 가지가 있을 수 있습니다. 먼저, JUnit5에서 제공하는 assertThrows() 메서드는 코드의 가독성을 높이고, 특정 예외가 발생하는지를 확실하게 검증할 수 있는 장점이 있습니다. 또한, JUnit5 메서드는 스프링 부트의 기본 테스트 프레임워크와 잘 통합되어 있어 스프링 애플리케이션을 테스트할 때 자연스럽게 사용될 수 있습니다.

물론, AssertJ의 assertThatThrownBy()도 상당히 직관적이고 널리 사용되는 방법입니다. 따라서, 어느 메서드를 사용하느냐는 주로 개발자의 선호에 따라 달라질 수 있습니다.

개발자들 사이에서는 검증 코드의 일관성을 유지하기 위해 동일한 라이브러리(예: AssertJ)로 모든 테스트를 작성하려는 경우가 많지만, 두 라이브러리의 기능을 적절히 혼용하여 사용하는 것도 충분히 합리적입니다. 특히 예외 테스트의 경우, assertThrows() 메서드는 JUnit5와의 긴밀한 통합 및 간결성 때문에 선호될 수 있습니다.

관련된 예시와 더 많은 설명을 원하시면 아래의 질문과 답변을 참고해 보세요:

위 자료들이 dev.rudevico님의 이해에 도움이 되길 바랍니다. 😊

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

dev.rudevico님의 프로필 이미지
dev.rudevico

작성한 질문수

질문하기