springboot 不同版本中 junit 测试类的写法变化

springboot 不同版本中 junit 测试类的写法变化

参考网址:

https://blog.csdn.net/wb1046329430/article/details/116450264?ops_request_misc=&request_id=&biz_id=102&utm_term=老版springboot测试类&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-0-.ecpm_v1_rank_v29&spm=1018.2226.3001.4187

说明:

该作者整理的比较全了,防止遗忘,转载一波

1. SpringBoot 2.2 之前的版本

1.1. 测试类

package com.example.demo1;

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 SampTest {
 
    @Test
    public void test() {
    }
 
}

1.2. 依赖项

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.10.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>   
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

2. SpringBoot 2.2 之后的版本

2.1. 测试类

package com.example.demo;
 
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
 
@SpringBootTest
public class SampTest {
 
    @Test
    public void test() {
    }
 
}

2.2. 依懒项

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.1.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
	<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>
</dependencies>

junit-vintage-engine是JUnit4中使用的测试引擎。
junit-jupiter-engine是JUnit5中使用的测试引擎。

在Spring Boot 2.2之后版本的spring-boot-starter-test中提供了junit-vintage-engine和junit-jupiter,而junit-jupiter中又提供了junit-jupiter-engine。也就是同时集成了JUnit4和JUnit5中的测试引擎,这样是为了兼容老版本考虑。如果你的项目只用了JUnit5,防止出错,可以在pom中进行排除junit-vintage-engine。

如下所示为Spring Boot 2.3.5版本的spring-boot-starter-test的pom依赖:

<dependency>
	<groupId>org.junit.jupiter</groupId>
	<artifactId>junit-jupiter</artifactId>
	<version>5.6.3</version>
	<scope>compile</scope>
</dependency>
<dependency>
	<groupId>org.junit.vintage</groupId>
	<artifactId>junit-vintage-engine</artifactId>
	<version>5.6.3</version>
	<scope>compile</scope>
	<exclusions>
		<exclusion>
			<artifactId>hamcrest-core</artifactId>
			<groupId>org.hamcrest</groupId>
		</exclusion>
	</exclusions>
</dependency>

这是junit-jupiter中的pom依赖:

<dependency>
	<groupId>org.junit.jupiter</groupId>
	<artifactId>junit-jupiter-engine</artifactId>
	<version>5.6.3</version>
	<scope>runtime</scope>
</dependency>

2.3. 最新依赖

目前最新版的Spring Boot 2.4.5是不需要进行排除的,因为我发现该版本的spring-boot-starter-test中已经将junit-vintage-engine依赖删除了。所以pom可以直接这么写了(和2.2之前的版本一样了,用到了可以自己去查看你所用SpringBoot版本的spring-boot-starter-test,看是否需要排除Junit4依赖):

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.4.5</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
	<dependency>
	    <groupId>org.springframework.boot</groupId>
	    <artifactId>spring-boot-starter-test</artifactId>
	    <scope>test</scope>
	</dependency>
</dependencies>

.springframework.boot
spring-boot-starter-test
test


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot项目,可以通过创建一个新的单元测试来进行单元测试。在这个,你需要添加`@SpringBootTest`注解来表示当前单元测试运行在Spring Boot环境。同时,你还需要导入相关的依赖和,例如`org.junit.jupiter.api.Assertions`和`org.junit.jupiter.api.Test`。在这个单元测试,你可以编写测试方法来测试你的业务代码。例如,你可以使用`@Test`注解来标记一个测试方法,并在方法编写测试逻辑。在测试方法,你可以使用断言来验证你的代码的预期行为。例如,你可以使用`Assertions.assertNotNull()`来验证某个对象不为空。以下是一个示例的单元测试: ```java import com.example.demo.mapper.UserMapper; import com.example.demo.model.UserInfo; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest class UserMapperTest { @Autowired private UserMapper userMapper; @Test void getUserById() { UserInfo userInfo = userMapper.getUserById(1); Assertions.assertNotNull(userInfo); } } ``` 在这个示例,我们使用`@Autowired`注解来自动注入`UserMapper`对象,并在`getUserById()`方法调用`userMapper.getUserById()`方法来获取用户信息。然后,我们使用`Assertions.assertNotNull()`来验证获取到的用户信息不为空。这样,我们就可以通过运行这个单元测试测试`UserMapper`的功能。 #### 引用[.reference_title] - *1* *2* *3* [【SpringBootSpringBoot单元测试](https://blog.csdn.net/m0_46468731/article/details/125969337)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值