代码之家  ›  专栏  ›  技术社区  ›  Sandeep Kumar Troy Daniel

junit vintage引擎和junit jupiter引擎之间的区别?

  •  0
  • Sandeep Kumar Troy Daniel  · 技术社区  · 5 年前

    这是一个双重问题。

    1. 两者的区别是什么 junit-vintage-engine junit-jupiter-engine ?
    2. SpringBoot初学者项目不包括 junit复古引擎 .是为了强制使用junit jupiter引擎吗?

    下面是我的SpringBoot项目从 Spring Initializr :

            <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>
    
    0 回复  |  直到 5 年前
        1
  •  26
  •   ck1    5 年前

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

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

    参考:

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

        2
  •  5
  •   Dhwanil Patel Alexander Drobyshevsky    4 年前

    答:1。 根据阅读,我发现了一些不同,比如,

    junit vintage引擎:

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

    junit jupiter引擎:

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

    回答:2。 我也很惊讶,他们仍然提供老式图书馆可能有一些原因,我现在不知道,但根据目前的使用情况,我们将在下一次更新中看到。

    祝你今天愉快!!!:)

        3
  •  1
  •   Ömer    4 年前

    第一个问题也与JDK的版本有关。要使用jupiter引擎,您必须拥有Java8或更高版本。第二个问题;由于老式发动机适用于JUnit4,且JUnit4的使用寿命超过10年,因此不建议使用。据我所知,虽然java已经进化了很多,但它在这段时间里并没有被更新。我认为这就是为什么spring初始化程序强制使用junit jupiter引擎的原因。