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

hujrc8aj  于 2023-11-17  发布在  Spring
关注(0)|答案(3)|浏览(160)

这是个双重问题。

  1. junit-vintage-enginejunit-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>

字符串

1cklez4t

1cklez4t1#

junit-vintage-engine用于运行JUnit 4测试; junit-jupiter-engine用于运行JUnit 5测试。
大概因为您将只为新的Sping Boot 项目编写JUnit 5测试,所以不需要vintage引擎,因此POM中默认的依赖项排除。

参考:

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

h7appiyu

h7appiyu2#

**答案:1.**基于阅读,我发现了一些差异,如,
junit-vintage-engine:

  • 用于Junit-4测试。
  • 用于调用核心类和注解。
  • “Assert”提供执行测试的Assert方法。
  • “Assume”用于放置假设。
  • 使用注解,如@Ignore、@Before等。
    junit-jupiter-engine:
  • 用于Junit-5测试
  • 提供了一些API,这些API有助于编写测试用例。
  • “Assertions”提供了用于测试的Assert条件的实用方法。
  • “假设”-效用方法提供基于假设的条件。
  • 更改注解名称的位,如@Disable、@BeforeAll、@BeforeEach等。
    **答案:2.**我也很惊讶他们仍然提供旧的老式图书馆可能有一些原因,我不知道到现在,但根据目前的使用情况,我们将看到在下次更新。

祝你今天过得愉快!:)

i2byvkas

i2byvkas3#

第一个问题也与JDK的版本有关,要使用jupiter引擎,你必须有Java 8或更高版本。第二个问题;由于老式引擎是为JUnit 4和JUnit 4是大于10岁,不建议使用。据我所知,虽然java已经进化了这么多,但它沿着没有更新。我想这就是为什么spring初始化器强制使用junit-jupiter-engine的原因。

相关问题