programing

Junit-vintage-engine과 Junit-jupiter-engine의 차이점은 무엇입니까?

easyjava 2023. 2. 23. 23:08
반응형

Junit-vintage-engine과 Junit-jupiter-engine의 차이점은 무엇입니까?

두 가지 질문입니다.

  1. 와의 차이는 무엇입니까?junit-vintage-engine그리고.junit-jupiter-engine?
  2. Spring Boot 스타터 프로젝트에는 다음 항목이 제외됩니다.junit-vintage-enginejunit-jupiter-engine 사용을 강제하기 위한 것입니까?

다음은 Spring Initializr에서 생성된 Spring Boot 프로젝트의 의존관계를 나타냅니다.

        <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
        <exclusions>
            <exclusion>
                <groupId>org.junit.vintage</groupId>
                <artifactId>junit-vintage-engine</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

junit-vintage-engineJUnit 4 테스트 실행에 사용됩니다.junit-jupiter-engineJUnit 5 테스트용입니다.

새로운 스프링 부트 프로젝트에서는 JUnit 5 테스트만 작성되므로 빈티지 엔진은 필요하지 않습니다.따라서 POM에서는 디폴트 의존관계 제외가 됩니다.

레퍼런스:

https://junit.org/junit5/docs/current/user-guide

답변: 1. 읽기를 통해 다음과 같은 차이를 발견했습니다.

junit-syslog-engine:

  • Junit-4 테스트에서 사용됩니다.
  • 코어 클래스 및 주석을 호출하는 데 사용됩니다.
  • 테스트를 수행하기 위한 어설션 방법을 제공하는 'Assert'입니다.
  • '가정'은 추측을 할 때 사용합니다.
  • @Ignore, @Before 등의 주석을 사용합니다.

junit-syslog-engine:

  • Junit-5 테스트에서 사용
  • 테스트 케이스를 작성하는 데 도움이 되는 API를 제공합니다.
  • 'Assessions'는 시험을 위한 어설션 조건의 효용 방법을 제공한다.
  • '가정' - 효용 방법은 가정에 기초한 조건을 제공합니다.
  • 주석 이름의 비트를 변경합니다(@Disable, @BeforeAll, @BeforeEach 등).

답변: 2.또, 낡은 빈티지 라이브러리가 아직 제공되고 있는 것도 놀랐습니다만, 지금까지의 사용법에 근거해 보면, 다음의 업데이트에서 확인할 수 있습니다.

좋은 하루 되세요!!!:)

첫 번째 질문은 JDK 버전과도 관련이 있습니다.주피터 엔진을 사용하려면 Java 8 이상이 필요합니다.두 번째 질문입니다.빈티지 엔진은 JUnit4용이고 JUnit4는 10년 이상 되었기 때문에 사용을 권장하지 않습니다.제가 알기로는 java가 많이 진화했는데도 지금까지 업데이트가 되지 않은 것으로 알고 있습니다.그래서 스프링 이니셜라이저가 Junit-jupiter-engine을 사용하는 것 같습니다.

언급URL : https://stackoverflow.com/questions/59193282/difference-between-junit-vintage-engine-and-junit-jupiter-engine

반응형