![[기술 면접] 7. JUnit이 무엇인가요? 1 JUnit이 무엇인가요?](http://allhoneytip.com/wp-content/uploads/2023/08/제목을-입력해주세요__복사본-8-001-3-300x300-optimized.png)
저번 시간에 이어, 이번엔 JUnit이 무엇인가에 대해 알아보겠습니다. 서비스 플랫폼 기업 K사와 L사에서 저번 질문과 연속으로 등장했던 질문입니다. 사용하는 기술이 프레임워크인지, 라이브러리인지 한번 생각해보시길 바랍니다.
![[기술 면접] 7. JUnit이 무엇인가요? 2 JUnit이 무엇인가요?](http://allhoneytip.com/wp-content/uploads/2023/08/image-54-optimized.png)
Q: JUnit이 무엇인가요?
단위 테스트 프레임워크입니다.
JUnit4는 하나의 jar파일로 의존성을 불러오고 다른 라이브러리를 참조해서 사용하는 구조였지만, JUit5부터는 그 자체로 모듈화가 되어있습니다.
JUnit5의 구성
- Platform: 테스트를 실행해주는 런처를 제공하며 TestEngine API를 제공합니다.
 - Jupiter: JUnit5를 지원하는 TestEngine API 구현체입니다.
 - Vintage: JUnit4와 3를 지원하는 TestEngine 구현체입니다.
 
JUnit5와 JUnit4의 차이점.
- @Test: JUnit5의 Jupiter에는 Annotation들이 존재하기 때문에, JUnit4와 다르게 어떠한 속성도 선언하지 않습니다.
 
//JUnit4
@Test(expected = Exception.class)
void create() throws Exception {
    ...
}
//JUnit5
@Test
void create() {
}
- Mock: 단위 테스트를 위해서 한 번에 하나의 메서드만을 실행하는데, 이러한 메서드가 의존성이 강하여 구현하기 힘들 경우 사용됩니다. 즉, 테스트프로그램을 실행 시키기 위한 가짜 객체입니다.
 
Q: JUnit의 생명주기에 대해 말씀해주세요.
※ JUnit5(JUnit4)
- @BeforeAll(@BeforeClass) : 전체 테스트 시작 전에 Class 기준으로 딱 한 번 호출되는 메서드입니다.
 - @BeforeEach(@Before) : 각 테스트 메서드가 실행되기 전에 실행합니다.
 - @Test : 테스트를 진행할 메서드에 사용합니다.
 - @AfterEach(@After) : 각 테스트 메서드가 실행한 후에 실행합니다.
 - @AfterAll(AfterClass) : 전체 테스트 종료 후에 딱 한 번 호출되는 메서드에 사용합니다.
 
※ @Test 메서드는 독립적으로 @BeforeEach, @AfterEach를 한 번씩 실행시키고, @BeforeAll과 @AfterAll은 전체에서 한 번 실행된 것을 공유합니다.
스프링 프레임워크 서적
제이유닛의 기본이 되는 스프링 프레임워크에 대해 공부하기 전에 스프링을 깊게 알아보시고 싶다면 아래 책들을 참고하시길 바랍니다 🙂
마치며
이번 시간에는 JUnit에 관련된 질문을 다루었습니다. 신입 개발자 기준으로 필수 개념이라 할수는 없지만, JUnit을 다루는 회사이거나, 포트폴리오에 테스트 코드 작성 이력이 있다면, 충분히 나올 수 있는 질문이니 숙지하고 가시길 권해드립니다.
다음 시간부터는 JPA에 대한 질문을 다루도록 하겠습니다.
![[기술 면접] 7. JUnit이 무엇인가요? 6 image 55](http://allhoneytip.com/wp-content/uploads/2023/08/image-55-1024x430-optimized.png)
“이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.”
![[기술 면접] 7. JUnit이 무엇인가요? 3 올인원 스프링 프레임워크, 한빛아카데미](https://img3a.coupangcdn.com/image/affiliate/banner/c5d6821675e7ac585a595357e65198c6@2x.jpg)
![[기술 면접] 7. JUnit이 무엇인가요? 4 스프링 프레임워크 첫걸음:기초 이론부터 웹 애플리케이션 제작까지 그림과 실습으로 배우는 스프링 프레임워크 완벽 입문서, 키노시타 마사아키 저/트랜스메이트 역, 위키북스](https://image3.coupangcdn.com/image/affiliate/banner/7d4d85dcfc22ed292768b66a89d06298@2x.jpg)
![[기술 면접] 7. JUnit이 무엇인가요? 5 자바/스프링 개발자를 위한 실용주의 프로그래밍:객체지향부터 스프링과 테스트까지 다시 제대로 배우는 애플리케이션 개발, 위키북스, 김우근](https://image2.coupangcdn.com/image/affiliate/banner/4e8fc972efe751568f045028e235243c@2x.jpg)
답글 남기기