기타

JUnit 5 vs JUnit 4

aim4fun 2020. 5. 16.
반응형
버전 JUnit 5 JUnit 4
자바 버전 Java 8 이상 필요 Java 5 이상 필요
구성 JUnit Platform, JUnit Jupiter, JUnit Vintage Jnit
Dependency 버전 5.4 이전 : junit-jupiter-engine

버전 5.4 이후 : junit-jupiter

공통 선택 : junit-vintage-engine
junit

 

JUnit 5 구성

  • JUnit Platform
    • IDE에서 사용하는 Launcher API를 정의하고 프레임워크를 시작하는 도구 빌드
    • 플랫폼에서 실행되는 테스트 프레임워크를 개발하는 데 사용되는 TestEngine API 정의
  • JUnit Jupiter
    • JUnit 5에서 테스트 및 확장을 작성하기위한 새로운 프로그래밍 모델과 확장 모델의 조합
    • 플랫폼에서 Jupiter 기반 테스트를 실행하기위한 TestEngine 제공
  • JUnit Vintage
    • 플랫폼에서 JUnit 3 및 JUnit 4 기반 테스트를 실행하기위한 TestEngine 제공

Junit 5 Dependency

  • junit-jupiter-engine
    • JUnit 5 테스트를 실행하는 junit-platform-engine API 구현.
      • junit-platform-engine
        • 모든 TestEngine이 구현해야하는 API
        • 일반적으로 JUnit 테스트를 실행하지만, 다른 방법으로 구현하면 TestNG, Spock 등으로 작성된 테스트도 실행할 수 있다.
    • 내부적으로 junit-jupiter-api에 의존
      • 따라서 junit-jupiter-engine만 추가해도 자동으로 클래스패스에 junit-jupiter-api가 추가된다.
  • junit-jupiter-api
    • 개발자가 테스트를 작성하는 API
    • JUnit 5의 annotations과 assertions 등 포함
      • assertions : 참, 거짓 가정문
        • Ex. void assertEquals(boolean expected, boolean actual)
  • junit-jupiter
    • junit-jupiter-api, junit-jupiter-params, junit-jupiter-engine 포함
      • junit-jupiter-params
        • JUnit 5 매개 변수화 된 테스트를 사용하려면 필요 ( Ex. @ParameterizedTest )
  • junit-vintage-engine
    • JUnit 3 또는 4로 작성된 테스트를 실행 하는 junit-platform-engine API 구현

Junit 4 Dependency

  • junit
    • JUnit 3 및 JUnit 4 용 API

 

 

댓글