前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >单元测试是什么?为什么要做单元测试?

单元测试是什么?为什么要做单元测试?

作者头像
测试小兵
发布2019-11-20 14:19:02
2.6K0
发布2019-11-20 14:19:02
举报
文章被收录于专栏:猪圈子猪圈子

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,你的代码语法正确,应该也是可以运行的。但是代码的行为和你的预期是一样的么?

代码语言:javascript
复制
public void addItem(Object itemObject){
    List myList = new List;
    myList.add(itemObject);
    myList.add(itemObject);
    ...
}

本文部分来源于网络如有侵权请联系删除

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python测试社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档