Junit4入门之什么是单元测试?

干了一年多的后端了,从来没有了解过单元测试。虽然我知道测试不仅仅是测试们的任务,后端也要进行自测来保证自己的代码的可用性,但我一直都只是用postman来实施的,调用调通了即可。虽然我也知道Junit是用于测试的软件,项目里也引入过,但真的就只是点到为止,除了引入就没用过。。之前是小外包公司,不需要你整这些没用的,现在进了比较看重编码质量的公司,就需要写单元测试的任务了。一方面是上面要求不得不学习,一方面也是对自己以后面试之类的有帮助,最后一方面就是希望学好单元测试后真的能对项目有帮助吧。

什么是单元测试?

首先我们得知道单元测试是个啥,一点点的学进去。

百度百科:单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。

可以看出,单元测试是一种对代码模块的测试,但它的特点是:小,是我们人为规定的最小的被测功能模块。所以绝对不能太久,据说即便是上千个单元测试,也可以在10秒内跑完。很多公司并没有严格界定单元测试的标准,将功能测试误以为是单元测试,认为只要使用了Junit就是单元测试,其实并不是这样。单元测试的特点是小,一般都是按方法为单位。也有以类为单位的,勉强也可以算进去。但是不能一次涉及多个类,如果是那样,那就是功能测试而不是单元测试了。

举例:

单元测试是用来对一个模块、一个函数或者一个类来进行正确性校验的测试工作。

例如现在要对函数abs(int i)进行测试(Java里获取绝对值的函数),首先我们可以编写出以下几个测试用例

1) 输入正数,例如1、2、3,预期返回值与输入参数相同

2) 输入负数,例如-1、-2、-3,预期返回值与输入参数相反

3) 输入0,预期返回值也是0

4) 输入非数值类型,例如List或任意类,预期会发生异常

把上面的测试用例放到一个测试模块里,就是一个完整的单元测试。

如果单元测试通过,说明我们测试的这个函数能够正常工作。如果单元测试不通过,要么函数有bug,要么测试条件输入不正确,总之,需要修复代码使单元测试能够通过。

这就是单元测试的目的,用于减轻我们开发自测的负担,避免开发时,不小心修改影响到以前的功能

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方进群即可自行领取。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/453640.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

汽车屏类产品(五):仪表Cluster常用芯片i.MX117x

前言: 仪表一般就是指方向盘前面那个表盘。做仪表的芯片最主要需要支持显示Display,而仪表的主要排版布局多种多样,但是主旨显示内容不尽相同。 仪表需求: 1、rpm转速表盘 仪表Cluster一般会有转速表盘rpm,单位一般是x1000,大部分汽车仪表范围就是0~8,也就是最高8000…

【Vue3】深入理解Vue3路由器的工作原理to的两种写法

💗💗💗欢迎来到我的博客,你将找到有关如何使用技术解决问题的文章,也会找到某个技术的学习路线。无论你是何种职业,我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章,也欢…

大数据 - HBase《一》- Hbase基本概念

目录 1.1. Hbase简介 1.2 Hbase,Hive, Mysql对比 1.3 Hbase数据模型 🥙region(区域) 🥙rowkey(行键) 🥙列族(column family) 🥙列(column Qualifier) 🥙版本(version)-默认按…

Sui与数据平台ZettaBlock达成合作,为其公测提供数据

Sui一向以闪电般的速度、无限水平扩展著称,现已迅速成为DeFi活动的重要场所。近期,数据平台ZettaBlock宣布在其开创性的Web3数据平台发布中,选择Sui作为基础集成合作伙伴之一。在ZettaBlock的开放测试版发布之际,构建者和开发者将…

【node】初识node以及fs操作,path操作以及http操作(一)

1、不同浏览器使用不同的javaScript引擎 chrome > v8 Firefox > OdinMonkey(奥丁猴) safri > JSCore IE浏览器>Chakra(查克拉) 2、node是一个基于chrome v8引擎的javaScript运行环境 浏览器是JavaScript的前端运行环境,…

AcrelEMS-MED医院综合能效管理平台在医院电力中的应用

彭姝麟 Acrelpsl 0引言 全医院是公共服务组织,其机构的特殊性决定了医院在提供医疗服务的同时,也需要发挥榜样作用,通过进行能源管理系统的应用,为医院的电力使用和能源消耗进行好的管理,从而减少电能消耗&#xff0…

Web端3D图形引擎HOOPS Commuicator如何实现BIM轻量化?

面对建筑信息模型(BIM)中复杂大型模型的挑战,如何实现轻量化,并使其能在Web端流畅运行是我们需要解决的问题。而HOOPS Communicator正可凭借其出色的Web端3D模型敏捷解决性,为我们提供强有力的支撑。 HOOPS Communica…

【四】【算法分析与设计】贪心算法的初见

455. 分发饼干 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有…

阿里云数据盘挂载目录

1、先登录服务器创建新目录aaa 2、云盘都快照备份下。后续操作完核实无误了,您根据您需求删除快照就行, 然后登录服务器内执行: fdisk -l lsblk blkid ll /aaa 3、执行:(以下命令是进行数据盘做ext4文件系统并挂载到…

tigramite教程(五)使用TIGRAMITE 进行自助聚合和链接置信度量化

使用TIGRAMITE 进行自助聚合和链接置信度量化 自助聚合(Bagging)和置信度估计例子数据生成模型基本的PCMCIBagged-PCMCI使用优化后的pc_alpha进行自举聚合使用优化的pc_alpha进行CMIknn的自举聚合 TIGRAMITE是一个用于时间序列分析的Python模块。它基于P…

Elastic Stack--04--ES中的检索方式、Query DSL

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1.ES中的检索方式第一种方式GET bank/_search # 检索bank下的所有信息,包括 type 和 docsGET bank/_search?q*&sortaccount_number:asc 第二种方式…

Redis经典面试题-卷2

前言 继续上一篇《Redis经典面试题-卷1》,今天整理一下关于redis的第2卷面试题。废话不多说,直接看干货 热Key问题 如果单单从工作的角度的话,面试官一般会问下面两个内容: 什么是热Key问题?如何解决热key问题&…

Android 摄像头等比例缩放 摄像头画面比例

在拍摄照片的时候我们往往会在后期进行二次构图,在裁剪的时候有不同的相片长宽比供我们选择,不同的长宽比带给观众的感受也不一样。这里为大家介绍一下照片拍摄中常用到长宽比例。 3:2(6:4) 这张照片是用Canon 50D拍摄的&#xf…

收藏贴!6个谈薪小技巧,助你拿到满意薪资

Salesforce的就业市场一直在迅猛发展,对Salesforce专业人士的需求持续不断,对优秀人才的需求更大。 本篇文章总结了6个谈薪小技巧,可以帮助SF从业者、求职者拿到满意的薪资。 01 了解市场价格 首先,需要了解当前就业市场的情况…

【Linux】进程控制与进程调度

Linux进程介绍 进程的基本概念 Linux是多用户、多任务的操作系统。在这样的环境中,各种计算机资源的分配和管理都是以进程为单位进行的。 Linux操作系统包括三种不同类型的进程: 1)交互进程:一种由Shell启动的进程。交互进程既可…

十、软考-系统架构设计师笔记-软件架构演化和维护

1、软件架构演化 软件架构的演化和维护的目的是为了使软件能够适应环境的变化而进行的纠错性修改和完善性修改。软件架构的演化和维护过程是一个不断迭代的过程,通过演化和维护,软件架构逐步得到完善,以满足用户需求。软件架构的演化就是软件…

JavaScript---VConsole插件配置使用,一步到位简单实用!

1. 寻找到自己需要的VConsole插件js文件 个人喜欢BootCDN这个平台(直接在线引用或者下载本地引入均可~) vConsole (v3.15.1) - A lightweight, extendable front-end developer tool for mobile web page. | BootCDN - Bootstrap 中文网开源项目免费 C…

浏览器的工作原理

从输入一个url到页面加载完成,中间都发生了什么? 参考原文地址 首先在浏览器地址栏输入一个地址并回车之后, 1. DNS查找 浏览器会进行DNS查找,把域名https://example.com转化为真实的IP地址10.29.33.xx,根据IP地址找…

探索C++中的动态数组:实现自己的Vector容器

🎉个人名片: 🐼作者简介:一名乐于分享在学习道路上收获的大二在校生 🙈个人主页🎉:GOTXX 🐼个人WeChat:ILXOXVJE 🐼本文由GOTXX原创,首发CSDN&…

Android Studio下运行java main 方法

方法一 修改项目的.idea中的gradle.xml文件&#xff0c;在GradleProjectSettings标签下添加一行代码 <option name"delegatedBuild" value"false" />方法二 main方法上右键选择Run ‘xxx’ with Coverage