junit-vintage-engine 和junit-jupiter-engine 的区别?

San*_*mar 18 java junit spring-boot spring-boot-test

这是一个双重问题。

  1. junit-vintage-engine和 和有junit-jupiter-engine什么区别?
  2. SpringBoot 入门项目排除了junit-vintage-engine. 是否强制使用junit-jupiter-engine?

下面是我从Spring Initializr生成的 SpringBoot 项目的依赖项:

        <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>
Run Code Online (Sandbox Code Playgroud)

ck1*_*ck1 20

junit-vintage-engine用于运行 JUnit 4 测试;junit-jupiter-engine用于 JUnit 5 测试。

大概因为您将只为新的 Spring Boot 项目编写 JUnit 5 测试,所以不需要老式引擎,因此 POM 中的默认依赖项排除。

参考:

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


Dhw*_*tel 7

答案:1.根据阅读,我发现了一些区别,例如,

junit-复古引擎:

  • 用于 Junit-4 测试。
  • 用于调用核心类和注解。
  • “Assert”提供用于执行测试的断言方法。
  • “假设”用于提出假设。
  • 使用@Ignore、@Before 等注释...

junit-jupiter-engine :

  • 用于 Junit-5 测试
  • 提供一些有助于编写测试用例的API。
  • “断言”提供了用于测试的断言条件的实用方法。
  • “假设”-效用方法提供基于假设的条件。
  • 更改注释名称的位,例如@Disable、@BeforeAll、@BeforeEach 等...

答案:2.我也很惊讶他们仍然提供较旧的老式库,可能有一些我到现在为止还不知道的原因,但根据当前的使用情况,我们将在下次更新中看到这一点。

祝你今天过得愉快!!!:)