单元测试是什么?为什么要做单元测试?
背锅侠 一个有个性的订阅号
1.单元测试是什么
单元测试是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确,通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为1。
长按图片识别二维码
入群-学习-合作-投稿
加小石阿微信 带你上高速
2.单元测试的好处
1,单元测试不但会使你的工作完成得更轻松。而且会令你的设计会变得更好,甚至大大减少你花在调试上面的时间
2,提高代码质量
3,减少bug,快速定位bug
4,放心地修改、重构
5,显得专业(玩笑话)
3.写单元测试要注意什么
1,不能只测试一条正确执行路径,要考虑到所有可能的情况
2,要确保所有测试都能够通过,避免间接损害
3,如果一个函数复杂到无法单测,那就说明模块的抽象有问题
4,配置不是单元测试的难点,难点是mock(后文讲),做单元测试需要伪造被测函数用到的大部分函数间接损害:在整个系统中,当某一部分加入了新特性,或者修复了一个bug之后,给系统的其他(与前面可能是互不相关的)部分引入了一个新的bug(或者损害)。如果无视这种损害并且继续开发的话,那么将可能带来一个很危险的问题,最后可能会导致整个系统崩溃,并且没人能够修复。
4.为什么写单元测试(为什么会拒绝单元测试)?
编写单元测试太花时间了?考虑下面问题:
1,对于所编写的代码,你在调试上面画了多少时间?
2,对于以前你自认为正确的代码,而实际上这些代码却存在重大的bug,你画了多少时间在重新确认这些代码上面?
3,对于一个别人报告的bug,你花了多少时间才找出导致这个bug的源码位置?
对于那些没有使用单元测试的程序员而言,上面这些问题所耗费的时间的递增速度是很快的,而且随着项目深入,递增速度会变得更快;而另一方面,适当的单元测试却可以很大程度地减少这些时间,从而为你腾出足够的时间来编写所有的单元测试——甚至可能还有剩余的空闲时间。
a.运行测试的时间太长?
一般合适的测试是不会让这种情况发生的。
有些真的会花很长时间的,可以把耗时的测试和其他测试分开。
b.不清楚代码的行为?
如果实在不清楚代码的行为,那么现在应该也不是应该编码的时候。
c.代码都能编译通过啊?
ok,你的代码语法正确,应该也是可以运行的。但是代码的行为和你的预期是一样的么?
public void addItem(Object itemObject){List myList = new List;myList.add(itemObject);myList.add(itemObject);...
}
本文部分来源于网络如有侵权请联系删除
背锅侠Tester
长按关注下方二维码领取资料
linux
jmeter
python
appscan
mysql
爬虫
sele
面试
WE WISH YOU HAPPY
NEW YEAR
2019
留言 在看 分享 你看着整儿
单元测试是什么?为什么要做单元测试?相关推荐
- 持续集成之单元测试篇——WWH(讲讲我们做单元测试的故事)
持续集成之单元测试篇--WWH(讲讲我们做单元测试的故事) 前言 临近上线的几天内非重大bug不敢进行发版修复,担心引起其它问题(摁下葫芦浮起瓢) 尽管我们如此小心,仍不能避免修改一些bug而引起更多 ...
- python做单元测试_如何使用python做单元测试?
很多编程小白不太理解单元测试,为什么要进行单元测试呢?很简单,主要是提高代码的正确,同时确保重构不出错.接下来我们一起学习怎么用python做单元测试吧. python内置了一个unittest,但是 ...
- html如何与py_Web项目如何做单元测试?
你可能会用单元测试框架,python的unittest.pytest,Java的Junit.testNG等. 那么你会做单元测试么!当然了,这有什么难的? test_demo.py def inc(x ...
- xcode 5 使用 XCTest 做单元测试
xcode 5 使用 XCTest 做单元测试 什么是单元测试,请看 百度百科 单元测试 一:在xcode5 之前,我们新建项目时,可以选择是否集成单元测试:如今在xcode5,我们新建立的项目默认就 ...
- 前端抢饭碗系列之Vue项目如何做单元测试
大家好,我是若川.今天分享一篇vue项目如何做单元测试的好文,文章比较长,建议先收藏,需要时用电脑看. 点击下方卡片关注我.加个星标 学习源码系列.年度总结.JS基础系列 关于单元测试,最常见的问题应 ...
- 为什么我们要做单元测试?(二)
引子 当我第一篇博客发布,并被张善友老师的公众号转载之后,在公众号文章和博客园的留言中,许多开发者纷纷表示,单元测试作为企业行为,与实施的技术栈不同,不是开发者个人行为,实施单元测试花费的时间精力过于 ...
- 使用MS Test做单元测试
声明:本篇博客翻译自:http://www.c-sharpcorner.com/article/unit-testing-with-ms-tests-in-c-sharp/ 写在翻译之前: 依然清晰的 ...
- python可以测试java的代码吗_使用python做你自己的自动化测试--对Java代码做单元测试 (2)-导入第三方jar包裹...
使用Jython对Java做单元测试,当然,为了测试开发java代码.这涉及到引入第三包的问题,如何导入第三方的包? 您可以使用http://blog.csdn.net/powerccna/artic ...
- 使用NUnit做单元测试(总结版)
使用NUnit做单元测试(总结版) [按:有关于NUnit的详细介绍请见:<NUnit2.0详细使用方法 >http://confach.cnblogs.com/archive/2005/ ...
- 使用DBUnit做单元测试
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! DBUn ...
最新文章
- wincc里c语言long int,WinCC V7.3_C脚本手册.pdf
- Oracle8i 到Oracle 12c的2014年最新PSU、Bundle Patch、SPU信息
- 数组作为函数参数进行传递
- BigData之Hadoop:Hadoop的简介、深入理解、下载、案例应用之详细攻略
- mxnet基础到提高(4)-- Dense层基础
- CSS3 -webkit-transition(属性渐变)
- HD-SDI光端机是什么?其性能特点和技术参数有哪些?
- Ubuntu 16.04 火狐添加java插件、解决Firefox强制低版本java插件运行以及安全设置限制自签名应用程序运行
- leetcode —— 200. 岛屿数量
- BroadcastChannel页面间通讯
- 为什么python不需要编译_为什么我用Go写机器学习部署平台,而偏偏不用Python?...
- html模态窗口调试,在模态窗口中显示HTML标记
- oracle 11g的audit导致system表空间快速增长的问题
- swift中变量的几种类型
- [vb]On Error GoTo 0和On Error resume区别
- 每月物品消耗统计表_预算统计表- .doc
- php 冗余代码检测,冗余代码检查工具Simian | 求索阁
- 基于开源飞控系统和安卓系统的4g5g物联网无人机实现
- 类型转化异常 Java Object转 int
- 如何将Ubuntu中的chrome浏览器升级到最新版
热门文章
- 基于Java实现五子棋程序
- (OpenCV+Python)--目标跟踪,背景分割器:KNN、MOG2和GMG
- 【阅读理解】深入移动端的适配-详尽篇
- 52-20210322华为海思Hi3516DV300的linux系统编译(eMMC模式)1
- 【项目实战】正确辨析蓝绿部署、金丝雀发布(灰度发布)、滚动发布、A/B测试
- 几种归一化方法(Normalization Method)python实现
- IP地址的划分-----A,B,C,D类地址
- 关于APP广告位的设计与优化(上)
- 倍福--两台TwinCAT3之间做Ethernet IP通信
- 思维导图Java篇(一)