10分钟学会Springboot项目单元测试

这篇具有很好参考价值的文章主要介绍了10分钟学会Springboot项目单元测试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本篇来聊一下项目开发过程中至关重要的一个话题:单元测试。

早期在一些大公司的传统业务部门,比如:微软的windows、office等部门,研发和测试人员的比例基本是1:1到2:1之间,一个核心模块的测试用例动辄几十万个test case,而一次full-test都要跑几天、甚至几个星期。每个新版本发布之前都要跑好多轮full-test,软件的每个模块都有详细的文档定义清楚:测试结果要达到怎么样的标准才算是这一个模块测试通过(核心是测试通过率)。一直到整个产品的质量满足产品设计的要求了才可以发布上线,可见测试对于大型软件项目的重要性。在如此严格的软件工程管理之下,一个新版本从设计、开发,到上线,一般需要一年、甚至几年的时间。

10分钟学会Springboot项目单元测试

到了2010年前后,随着移动互联网的兴起,软件的开发模型也发生了重大变化,软件迭代周期越来越短,很多客户端软件都是每个月、甚至每周发布新的版本,极端的情况下一周甚至会发布两个新版本。在这种情况下,针对每个发布版本做完整的full test几乎是不可能的事情。随着时间的推移,无数公司的生与死用事实证明了快速迭代开发模型的优越性——用最短的时间贴合用户的真实需求。

在agile思想的冲击下,连软件行业巨头们——如前文提到的微软——也嗅到了被淘汰的危机感,很快大刀阔斧砍掉了几乎所有的测试团队。但是,砍掉测试团队、裁掉测试人员,不等于软件就不测试了,而是转移了测试环节:要求每个模块都要写足够数量的测试用例。只有这样,各模块之间联调才会顺利,最终发布的产品才能够达到一定的水准。

说了这么多,不过是想说一件事:研发不要写裸奔的代码,尤其是逻辑负责的模块,更要写充分的单元测试才可以。下面来看一下基于spring boot写unit test的基本步骤。本文只介绍controller的测试用例编写过程。

01 添加测试用例

添加测试用例分为下面几个步骤:

添加测试类

在test/java/com/fintech/helloworld目录下添加Java Class “HelloControllerTest”

10分钟学会Springboot项目单元测试

在新创建的HelloControllerTest头部添加注解:

@RunWith(SpringRunner.class)

@SpringBootTest

public class HelloControllerTest {

……

定义并配置MockMvc

@RunWith(SpringRunner.class)

@SpringBootTest

public class HelloControllerTest {


    private MockMvc mockMvc;    @Before
    public void before() {
        mockMvc = MockMvcBuilders.standaloneSetup(new HelloController()).build();
    }

……

注:每个测试用例运行之前,都会调用一次被@Before注解的函数,也就是说before函数适合用来为每个测试用例配置一些通用的环境。

添加测试用例

   @Test
    public void helloTest() throws Exception {
        mockMvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))
                .andExpect(status().isOk());
    }

如果对python自动化测试、web自动化、接口自动化、移动端自动化、面试经验交流等等感兴趣的测试人,可以 点我自行获取…

02 运行单元测试

运行单元测试有两种方式:

run button

通过点击run button运行整个测试类,或者单个测试用例

10分钟学会Springboot项目单元测试

通过命令行

运行单元测试

mvn test

运行Test类里面的所有测试用例

mvn -Dtest=HelloControllerTest test

或者运行Test类里面某一个特定的测试用例

mvn -Dtest=HelloControllerTest#helloTest test

或者运行Test类里面的某些测试用例(函数名以hello开头的测试用例)

mvn -Dtest=HelloControllerTest#hello* test

03 跳过单元测试

如果对python自动化测试、web自动化、接口自动化、移动端自动化、面试经验交流等等感兴趣的测试人,可以 点我自行获取…

在开发的过程中,经常会添加/改动功能,往往会导致现有的一些测试用例失效,在调试这些新功能的过程中,每次编译都会自动跑全部测试用例,又会很耗时,因此有必要在这种情况下不跑测试。

在编译的过程中加入下面的参数可以直接略过所有的单元测试:

mvn -DskipTests = true ……

在这里还是要推荐下我自己建的Python学习Q群:746506216,群里都是学Python的,如果你想学或者正在学习Python ,欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2022最新的Python进阶资料和零基础教学,欢迎进阶中和对Python感兴趣的小伙伴加入!文章来源地址https://www.toymoban.com/news/detail-456028.html

到了这里,关于10分钟学会Springboot项目单元测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • springboot项目test单元测试java.lang.NullPointerException问题

    最近在测试写好mapper相关接口时是,出现空指针异常,所以记录一下。 在测试用户登录时,出现如下错误 测试方法 错误信息 通过分析日志了解到原因是 无法调用“AdminUserMapper.login(String, String)”,因为“this.adminUserMapper”为空 应该是AdminUserMapper没有注入进来,但是自己

    2024年02月02日
    浏览(82)
  • Springboot 多模块项目集成Jacoco统计单元测试覆盖率

    jenkis服务器需要配置Jacoco 常见报错: Not compiling test sources Skipping JaCoCo execution due to missing execution data file. 修改插件配置

    2024年02月09日
    浏览(35)
  • #PowerBi 10分钟学会,以X为结尾的聚合函数

    前言 在 Power BI 中,我们经常需要对数据进行聚合计算,比如求和、求平均、求最大值等。 Power BI 提供了一系列的聚合函数,可以用来对表中列的值进行聚合然后返回一个值。这些函数通常只需要一个参数,就是要聚合的列名。如SUM(‘销售表’[销量]),就是求销售表里的销量

    2024年02月03日
    浏览(37)
  • Springboot 项目中引入WebSocket后,单元测试出现错误,前端开发揭秘

    java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:125) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:108) at org.springframework.test.context.w

    2024年04月27日
    浏览(35)
  • 10分钟叫你如何学会组织Prompt语言同AI沟通

    提示词(Prompt)是与AI模型交流的语言,用以告诉AI模型想要生成的图像的特征。提示词的准确性、精准度直接决定了生成的图像是否符合我们的预期。 AIGC提示词通常由多个单词、词组或短句构成,以*** , ***分割组成; 提示词分为正向提示词(positive prompt)和反向提示词(

    2024年02月02日
    浏览(36)
  • 三分钟学会使用 Docker 部署前端项目

    本篇文章带领读者利用Docker+XShell+阿里云服务器进行简单的前端网页部署。笔者用到的环境如下: 本机操作系统:Windows 10(因此直接安装 Docker Desktop,图形化操作,较为方便) 云服务器:阿里云 2核 2G(Ubantu) 一些本人参考的资料整理: Docker中文文档:Docker — 从入门到实

    2024年02月22日
    浏览(48)
  • 酷炫无敌!10分钟学会制作3D园区大屏,职场新人也能秒变大神!

    近年来随着大数据的飞速发展,各大行业都进行了一定的产业革新,智慧园区也逐渐进入企业视野并成为主流,不论大小企业,领导老板都要求员工制作出智慧园区的酷炫大屏,不顾及其中的技术难度,只想看到最终成果,让众多员工苦不堪言,我今天去商场吃午饭时隔壁饭

    2024年02月17日
    浏览(84)
  • 搭建大型分布式服务(四十六)利用mockito不启动SpringBoot项目下进行单元测试

    SpringBoot支持集成Mockito做单元测试,有时候SpringBoot有很多外部依赖,在本地很难启动或者启动时间很长,而我们只想对某个方法进行测试,需要怎样做呢? 一、本文要点 接前文,我们已经已介绍在两种mock模式下,怎样根据入参返回自定义mock结果,但都是通过启动SpringBoot项

    2024年02月06日
    浏览(44)
  • springboot项目使用Junit5 + mockito + jacoco 实现单元测试以及代码覆盖率检查

    在创建springboot项目时会默认添加spring-boot-starter-test依赖,其中已经包含了junit、mockito依赖,根据springboot版本的不同junit和mockito的版本也会有所不同 先说一下各自功能: junit只说一点,junt4和junit5的注解不同,使用方式略有差异,其他不赘述了,基本用法都懂。 mockito是mock的

    2023年04月23日
    浏览(55)
  • 3分钟让你学会axios在vue项目中的基本用法(建议收藏)

    目录 Axios Axios简介 一、axios是干啥的 二、安装使用 三、Axios请求方式 1、axios可以请求的方法: 2、get请求 3、post请求 4、put和patch请求 5、delete请求 6、并发请求 四、Axios实例 1、创建axios实例 2、axios全局配置 3、axios实例配置 4、axios请求配置 五、拦截器 1、请求拦截器 2、响应

    2024年01月20日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包