背锅侠 一个有个性的订阅号


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

留言 在看 分享 你看着整儿

单元测试是什么?为什么要做单元测试?相关推荐

  1. 持续集成之单元测试篇——WWH(讲讲我们做单元测试的故事)

    持续集成之单元测试篇--WWH(讲讲我们做单元测试的故事) 前言 临近上线的几天内非重大bug不敢进行发版修复,担心引起其它问题(摁下葫芦浮起瓢) 尽管我们如此小心,仍不能避免修改一些bug而引起更多 ...

  2. python做单元测试_如何使用python做单元测试?

    很多编程小白不太理解单元测试,为什么要进行单元测试呢?很简单,主要是提高代码的正确,同时确保重构不出错.接下来我们一起学习怎么用python做单元测试吧. python内置了一个unittest,但是 ...

  3. html如何与py_Web项目如何做单元测试?

    你可能会用单元测试框架,python的unittest.pytest,Java的Junit.testNG等. 那么你会做单元测试么!当然了,这有什么难的? test_demo.py def inc(x ...

  4. xcode 5 使用 XCTest 做单元测试

    xcode 5 使用 XCTest 做单元测试 什么是单元测试,请看 百度百科 单元测试 一:在xcode5 之前,我们新建项目时,可以选择是否集成单元测试:如今在xcode5,我们新建立的项目默认就 ...

  5. 前端抢饭碗系列之Vue项目如何做单元测试

    大家好,我是若川.今天分享一篇vue项目如何做单元测试的好文,文章比较长,建议先收藏,需要时用电脑看. 点击下方卡片关注我.加个星标 学习源码系列.年度总结.JS基础系列 关于单元测试,最常见的问题应 ...

  6. 为什么我们要做单元测试?(二)

    引子 当我第一篇博客发布,并被张善友老师的公众号转载之后,在公众号文章和博客园的留言中,许多开发者纷纷表示,单元测试作为企业行为,与实施的技术栈不同,不是开发者个人行为,实施单元测试花费的时间精力过于 ...

  7. 使用MS Test做单元测试

    声明:本篇博客翻译自:http://www.c-sharpcorner.com/article/unit-testing-with-ms-tests-in-c-sharp/ 写在翻译之前: 依然清晰的 ...

  8. python可以测试java的代码吗_使用python做你自己的自动化测试--对Java代码做单元测试 (2)-导入第三方jar包裹...

    使用Jython对Java做单元测试,当然,为了测试开发java代码.这涉及到引入第三包的问题,如何导入第三方的包? 您可以使用http://blog.csdn.net/powerccna/artic ...

  9. 使用NUnit做单元测试(总结版)

    使用NUnit做单元测试(总结版) [按:有关于NUnit的详细介绍请见:<NUnit2.0详细使用方法 >http://confach.cnblogs.com/archive/2005/ ...

  10. 使用DBUnit做单元测试

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! DBUn ...

最新文章

  1. wincc里c语言long int,WinCC V7.3_C脚本手册.pdf
  2. Oracle8i 到Oracle 12c的2014年最新PSU、Bundle Patch、SPU信息
  3. 数组作为函数参数进行传递
  4. BigData之Hadoop:Hadoop的简介、深入理解、下载、案例应用之详细攻略
  5. mxnet基础到提高(4)-- Dense层基础
  6. CSS3 -webkit-transition(属性渐变)
  7. HD-SDI光端机是什么?其性能特点和技术参数有哪些?
  8. Ubuntu 16.04 火狐添加java插件、解决Firefox强制低版本java插件运行以及安全设置限制自签名应用程序运行
  9. leetcode —— 200. 岛屿数量
  10. BroadcastChannel页面间通讯
  11. 为什么python不需要编译_为什么我用Go写机器学习部署平台,而偏偏不用Python?...
  12. html模态窗口调试,在模态窗口中显示HTML标记
  13. oracle 11g的audit导致system表空间快速增长的问题
  14. swift中变量的几种类型
  15. [vb]On Error GoTo 0和On Error resume区别
  16. 每月物品消耗统计表_预算统计表- .doc
  17. php 冗余代码检测,冗余代码检查工具Simian | 求索阁
  18. 基于开源飞控系统和安卓系统的4g5g物联网无人机实现
  19. 类型转化异常 Java Object转 int
  20. 如何将Ubuntu中的chrome浏览器升级到最新版

热门文章

  1. 基于Java实现五子棋程序
  2. (OpenCV+Python)--目标跟踪,背景分割器:KNN、MOG2和GMG
  3. 【阅读理解】深入移动端的适配-详尽篇
  4. 52-20210322华为海思Hi3516DV300的linux系统编译(eMMC模式)1
  5. 【项目实战】正确辨析蓝绿部署、金丝雀发布(灰度发布)、滚动发布、A/B测试
  6. 几种归一化方法(Normalization Method)python实现
  7. IP地址的划分-----A,B,C,D类地址
  8. 关于APP广告位的设计与优化(上)
  9. 倍福--两台TwinCAT3之间做Ethernet IP通信
  10. 思维导图Java篇(一)