单元测试的一些基本概念

我们(程序员)多多少少都写过单元测试,有的可能几年前写的几行代码(比如我), 姑且也算写过吧,但是有些东西还是不是很清楚,比如什么是单元测试?怎么才算是好的单元测试?等等很多,查了些资料,总结一下。

1、什么是单元测试

单元测试是一段代码(通常是一个方法)调用另外一段代码,随后检验一些假设的正确性。如果假设的结果错了,单元擦拭注定会失败。一个单元指的是一个方法或函数。

2、好的单元测试具有哪些特性

  • 自动的,可重复的
  • 容易实现的
  • 一旦写好,将来都可以使用
  • 任何人都可以运行
  • 单击一个按钮或输入一条命令就可以运行
  • 能够快速的运行

3、什么是集成测试?

把两个或者多个相依赖的模块作为一个组进行测试。他运行多个集成在一起的代码单元,用来来确定软件中应该出现的一个活多个预期结果。

4、什么是逻辑代码?

逻辑代码是指任何一小段包含逻辑的代码,只要包含一个或者多个以下要素的就是逻辑代码:if、switch、 for、foreach、while等等任何其他类型的判断代码。(由于编程语言不同,关键字有可能不同)

5、什么是测试驱动开发(TDD)?

测试驱动开发即测试优先开发。传统的开发流程如下图所示

TDD的开发流程大致如下,它是螺旋性的,写单元测试、写实现代码、重构。然后写下一个。体现增量开发,每次一小步,每次都能提高质量或增加功能。

TDD开发其实就3步:首先写一个失败的测试,证明最终的产品缺少代码或功能;然后编写实现代码,满足测试的期望,使测试通过;最后是重构也可以继续写下个单元测试,所谓的重构是调整代码,使得代码可读性更强,消除冗余等。

 

转载于:https://www.cnblogs.com/liuyh208/p/3277469.html

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习领域有哪些瓶颈

来源:知乎问题深度学习是近年来人工智能热潮的原因,它的出现在很多方面都作出了突破,包括在图像、NLP以及语音等领域都有很多问题取得很大的突破,但它目前也存在一些问题和瓶颈需要解决。量子位https://www.zhihu.com/question/40…

cnn调优总结

关注&置顶“算法猿的成长”每日8:30,干货速递!转载自 Charlotte数据挖掘资料来自网上,略有删改针对CNN优化的总结Systematic evaluation of CNN advances on the ImageNet使用没有 batchnorm 的 ELU 非线性或者有 batchnorm 的 ReLU。用类…

Android笔记之自定义Editext

1、重写EdiText类,下面是一个逐条显示下划线的Editext import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.util.AttributeSet; import android.view.Gravity; import android.w…

程序员到底要不要接外包?

? “沉默王二” ,你值得星标的公众号之前写过一篇文章,题目叫做《窝在二线城市很难受,要杀回一线城市吗》,里面提到程序员接外包这件事,于是很多小伙伴就私下问我:二哥,我也想接外包&#xff0…

Github项目|几行代码即可实现人脸检测、目标检测的开源计算机视觉库

关注&置顶“算法猿的成长”每日8:30,干货速递!2019 年第 73 篇文章,总第 97 篇文章今天介绍一个简单、易用的开源计算机视觉库,名字是 cvlib,其 Github 地址:https://github.com/arunponnusamy/cvlib官…

认识迅雷界面引擎

UI开发的新时代----认识迅雷界面引擎 第一部分:交互开发技术概述软件产品的交互开发一直以来都不是一件令人愉悦的事情。首先,由于每个人编写的第一个图形应用程序就已经使用了一些交互开发技术,而且由于IDE工具的强大,容易总结出交互开发就是…

最棒的Chrome插件去哪找?这里有一份榜单

上个月给大家介绍了重大更新后的 扩展迷 Extfans 网站,当时也说到:可以把它当成是一个 Chrome 商店的镜像版,可以无障碍下载安装 Chrome 扩展。不得不说,在不能正常使用 Chrome 商店的情况下,多亏了扩展迷 Extfans 这样…

【原创】推荐广告入门:DeepCTR-Torch,基于深度学习的CTR预测算法库

在计算广告和推荐系统中,CTR预估一直是一个核心问题。无论在工业界还是学术界都是一个热点研究问题,近年来也有若干相关的算法竞赛陆续举办。本文介绍一个使用PyTorch编写的深度学习的点击率预测算法库DeepCTR-Torch,具有简洁易用、模块化和可…

JAVA编程心得-Eclipse/MyEclipse 中文乱码解决办法

将别人的项目或JAVA文件导入到自己的Eclipse中时,常常会出现JAVA文件的中文注释变成乱码的情况,主要原因就是别人的IDE编码格式和自己的Eclipse编码格式不同。 总结网上的建议和自己的体会,可以参考以下几种解决方式: 1 改变整个…

程序员相亲图鉴

程序员,已经渐渐成当代相亲市场的一只主力军。甚至可以说是“香饽饽”。越来越多的妹子,在写择偶要求时,会说对程序员有好感。因为他们,踏实聪明又靠谱,钱多花花肠子少。但关于程序员谈恋爱的“笑点”也不少&#xff0…

推荐几个提高工作效率的神器

推荐几个提高工作效率的神器,只要用到电脑的工作都适用,可以大大提高工作效率。本文所提到的装备经过本人试用,所有价格来自京东网,建议根据自己的经济条件购买装备(理论上越贵越好),不建议购买…

终于等到你!GitHub 终于支持 multi-line comments!

今天(北京时间 2019 年 10 月 2 日),GitHub CEO Nat Friedman 在 Twitter 发布消息,宣布 GitHub pull request 正式支持 multi-line comments!相信一直用 GitHub 进行 PR review 的童鞋,一定对于 GitHub 的…