All Honey Tip

[기술 면접] 7. JUnit이 무엇인가요?

수정 일:

발행 일:

JUnit이 무엇인가요?

저번 시간에 이어, 이번엔 JUnit이 무엇인가에 대해 알아보겠습니다. 서비스 플랫폼 기업 K사와 L사에서 저번 질문과 연속으로 등장했던 질문입니다. 사용하는 기술이 프레임워크인지, 라이브러리인지 한번 생각해보시길 바랍니다.

JUnit이 무엇인가요?





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에 대한 질문을 다루도록 하겠습니다.

image 55



코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다