Ťhis post was originally posted on Medium.
在本文中,我们将学习如何在新创建的Spring中启用JUnit 5 引导项目。 我们正在执行以下步骤:
- 初始化新的Spring Boot项目看看我们的pom.xml并且主要在春季启动启动器测试dependency, going a little deeper in 春季启动启动器测试 and see whatJUnit version it usesHow to exclude child dependency that comes from one of our dependencies usingMaven添加JUnit 5将JUnit 4迁移到JUnit 5
1) First, let’s go to Spring Boot initializr and generate a new project.
默认值应该很好,您可以单击“ Generate Project”按钮。 您应该已经下载了入门Sprint Boot项目的.zip存档。 解压缩并用您选择的IDE将其打开(我正在使用IntelliJ,下面的代码示例和示例将从中显示)。 打开它之后,您应该看到以下结构:
2)现在,让我们专注于pom。xml。
在我们的pom.xml我们可以看到以下依赖项,其中包括用于测试Spring Boot应用程序的库(例如JUnit,Hamcrest和Mockito)。
org.springframework.boot
spring-boot-starter-test
test
我们将更深入地了解确切的依赖关系及其版本,重点是unit与哪个春季启动启动器测试来了(在IntelliJ中,您可以通过Ctrl +单击到春季启动启动器测试。 在下面的代码段中,我们可以看到春季启动启动器测试JUnit 4.12附带,但已经有JUnit 5。 那么如何在新的Spring Boot项目中使用更新版本的JUnit?
junit
junit
4.12
compile
3)我们应该有一种排除JUnit 4的方法,因为由于以下原因我们目前依赖于它春季启动启动器测试。 我们可以通过将以下几行添加到春季启动启动器测试依赖关系,排除JUnit 4。
org.springframework.boot
spring-boot-starter-test
test
junit
junit
4)现在,我们将使用Maven将JUnit 5配置为依赖项。 我们将在其中添加以下依赖项pom.xml
org.junit.jupiter
junit-jupiter-api
5.3.2
test
org.junit.jupiter
junit-jupiter-engine
5.3.2
test
我们应该将以下Maven插件添加到我们的构建插件中
maven-surefire-plugin
2.22.0
5)我们删除了对JUnit 4的依赖,我们添加了JUnit 5,现在是时候进行一些代码更改以使用JUnit 5了。DemoApplicationTests.java在这里我们可以看到以下代码
package com.example.demo;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {
@Test
public void contextLoads() {
}
}
实际上,我们唯一需要改变的是运行方式注解,因为它来自JUnit 4和测试注解。 更改后,我们的测试应该看起来像
package com.example.demo;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit.jupiter.SpringExtension;
@ExtendWith(SpringExtension.class)
@SpringBootTest
public class DemoApplicationTests {
@Test
public void contextLoads() {
}
}
您现在应该准备开始使用JUnit 5编写测试。 :)