Springboot整合JUnit5框架


友情提醒:

先看文章目录,大致了解文章知识点结构,点击文章目录可直接跳转到文章指定位置。

第一章、在pom文件中导入依赖

SpringBoot2.2x之后的版本中spring-boot-starter-test包中,默认集成了JUnit5依赖包,Mockito: Java Mock框架依赖,AssertJ流式断言依赖包等,所以正常来说我们不需要再导入关于单元测试的依赖包了。

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

版本关系如图:对静态类进行mock的时候:mockito-core的版本要在3.4以上。

在这里插入图片描述

第二章、新建测试类

①查看扫描路径是否正确

如果不正确需要手动添加:File-project structure–>moudles–>选中想要的模块–>Sources–>test下的java文件夹右击设置为tests

在这里插入图片描述

②快速生成测试类
选中需要测试的service包中类的类名,右键选择Generate

在这里插入图片描述

选择Test

在这里插入图片描述

③勾选以下配置选项:
1、选择JUnit5。
2、测试类的命名规范为BidInfoServiceImpl类名后面加Test也就是BidInfoServiceImplTest。3、我们需要在test包下建立相同的路径
4、勾选setUp/@Before
5、勾选需要测试的方法
6、选择OK

在这里插入图片描述

④查看test下的路径
已经替我们生成了对应的测试类了

在这里插入图片描述

第三章、新建测试方法

①测试BidInfoServiceImpl类中的fact方法

public class BidInfoServiceImpl implements BidInfoService {
   
 public int fact(int i){
   
        int a=++i;
        return a;
    }
}

②添加注解
@ExtendWith注解在刚刚新建的BidInfoServiceImplTest测试类上面@InjectMock注释在要测试的实现类上,
@Test注释在测试的方法上


// 在junit4的时候使用@Runwith注解,在junit5的时候使用的是@ExtendWith(MockitoExtension.class)注解

@ExtendWith(MockitoExtension.class)
//@RunWith(MockitoJUnitRunner.class)
public class BidInfoServiceImplTest {
   
    @InjectMocks
    BidInfoServiceImpl bidInfoServiceImpl;

    @Test
    public void testFact(){
   
//第一个参数是预期结果:2。第二个参数是需要测试的方法,传入值1
        assertEquals(2,bidInfoServiceImpl.fact(1));
        assertEquals(4,bidInfoServiceImpl.fact(3));
    }
}

③运行测试方法
右键红框处,点击RUN运行,assertEquals()方法中第一个参数是预期结果2。第二个参数是需要测试的方法,传入参数1
在这里插入图片描述
④测试通过(即结果与预期相符)
出现如下提示:
在这里插入图片描述

相关推荐

  1. JUnit 5 单元测试框架

    2024-02-09 12:42:03       55 阅读
  2. Springboot】单元测试Junit5应用

    2024-02-09 12:42:03       50 阅读
  3. 如何来整合 CDI-Unit 和 JUnit 5

    2024-02-09 12:42:03       31 阅读
  4. SpringBoot整合Logback日志框架

    2024-02-09 12:42:03       34 阅读
  5. Spring Boot整合Junit

    2024-02-09 12:42:03       44 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-09 12:42:03       91 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-09 12:42:03       97 阅读
  3. 在Django里面运行非项目文件

    2024-02-09 12:42:03       78 阅读
  4. Python语言-面向对象

    2024-02-09 12:42:03       88 阅读

热门阅读

  1. 【Golang】定时任务Cron指南-毫秒级任务支持

    2024-02-09 12:42:03       52 阅读
  2. Flutter typedef 函数类型

    2024-02-09 12:42:03       50 阅读
  3. 速盾:dns解析和cdn加速的区别与联系

    2024-02-09 12:42:03       59 阅读
  4. C++ [NOIP2007 提高组] 矩阵取数游戏

    2024-02-09 12:42:03       46 阅读
  5. lnmp指令

    2024-02-09 12:42:03       58 阅读
  6. C++中的递归算法

    2024-02-09 12:42:03       54 阅读
  7. 力扣刷题-392.判断子序列

    2024-02-09 12:42:03       53 阅读
  8. C语言中的作用域与生命周期

    2024-02-09 12:42:03       55 阅读
  9. 前端开发:(六)Vue快速入门

    2024-02-09 12:42:03       42 阅读
  10. GraphicsMagick 的 OpenCL 开发记录(三十四)

    2024-02-09 12:42:03       43 阅读