文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

基于SpringBoot Mock单元测试的示例分析

2023-06-25 17:33

关注

小编给大家分享一下基于SpringBoot Mock单元测试的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

Junit中的基本注解:

SpringBoot 单元测试详解(Mockito、MockBean)

SpringBoot 单元测试(cobertura 生成覆盖率报告)

1.Mock的概念:

所谓的mock就是创建一个类的虚假的对象,在测试环境中,用来替换掉真实的对象,以达到两大目的:

验证这个对象的某些方法的调用情况,调用了多少次,参数是什么等等指定这个对象的某些方法的行为,返回特定的值,或者是执行特定的动作 2. 添加依赖

新建的springBoot项目中默认包含了spring-boot-starter-test的依赖,如果没有包含可自行在pom.xml中添加依赖

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

基于SpringBoot Mock单元测试的示例分析

进入 spring-boot-starter-test-2.2.2.RELEASE.pom 可以看到该依赖中已经有单元测试所需的大部分依赖,如:

基于SpringBoot Mock单元测试的示例分析

注意包含的junit为junit5 ,在主要还是使用junit4所以在pom.xml中添加依赖

<dependency>            <groupId>junit</groupId>            <artifactId>junit</artifactId>            <scope>test</scope>        </dependency>

这里如果不添加的话,在使用@RunWith注解的时候也会提示你添加,点击Add ‘JUnit4' to classpath也会自动在pom.xml帮你添加

基于SpringBoot Mock单元测试的示例分析

若为非springboot项目,其他 spring 项目,需要自己添加 Junit 和 mockito 的依赖。SpringBoot不要添加,添加后Test的时候会出错

  <dependency>            <groupId>junit</groupId>            <artifactId>junit</artifactId>            <version>4.12</version>            <scope>test</scope>        </dependency>        <!-- https://mvnrepository.com/artifact/org.mockito/mockito-all -->        <dependency>            <groupId>org.mockito</groupId>            <artifactId>mockito-all</artifactId>            <version>1.10.19</version>            <scope>test</scope>        </dependency>

3. 常用的 Mockito 方法

Mockito的使用,一般有以下几种组合:

例如:

given(userRepository.findByUserName(Mockito.anyString())).willReturn(user);

given用于对指定方法进行返回值的定制,它需要与will开头的方法一起使用

通过willReturn可以直接指定打桩的方法的返回值

when(userRepository.findByUserName(Mockito.anyString())).thenReturn(user);

when的作用与Given有点类似,但它一般与then开头的方法一起使用。

thenReturn与willReturn类似,不过它一般与when一起使用。

基于SpringBoot Mock单元测试的示例分析

基于SpringBoot Mock单元测试的示例分析

看完了这篇文章,相信你对“基于SpringBoot Mock单元测试的示例分析”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网行业资讯频道,感谢各位的阅读!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯