Python unittest 之一: 什么是单元测试

unittest 是 Python自带的 单元测试框架。

那么我们首先需要知道什么是单元测试。

单元测试 也是测试活动的一种。

通常我们把 单元测试 unit test、 集成测试 Integration Test、系统测试 System test

放在一起比较。

单元测试

通常是测试一小块代码的功能,比如一个函数,类的一个方法

集成测试

通常是把被测系统的几个相互之间有交互的模块(或者说子系统)作为一个整体进行测试。

和单元测试相比,集成测试中的被测对象 更大一些,是子系统级别的测试

系统测试

有的人也叫 端到端的测试,或者说功能测试。

则是把整个被测系统看做一个整体进行测试。

它的测试对象就更大了,是整个系统级别的测试。

通常也是由测试部门做的测试。

从上面的描述中,我们可以看出:

单元测试通常是开发人员做的一种测试,通常是测试 函数,方法这种级别的代码块的。

单元测试大都是 设计出不同的调用参数来调用函数,来看 函数 的输出是否符合预期。

当然如果你的代码写的不好的话, 单元测试也会比较麻烦。

比如一个功能模块没有内聚到函数中,而是分散在代码文件里面。

那样,就不容易用一个函数调用对这些功能进行测试。

出现这种情况,说明代码质量是比较糟糕的。

所以有的团队把代码是否容易单元测试作为代码质量的一个指标。


通常单元测试也是整个 项目质量的基石。

通常单元测试做的好的项目, 隐藏bug的几率就会比较少。

项目后期的bug会原来越少,呈现出一种收敛的趋势。

这样就会减少项目回归测试的次数。

为什么?

做过项目开发的就知道, 不成熟的团队,经常是改了一个bug引起新的bug

根据经验来看, 导致这种原因的,就是某些函数、小模块。

如果单元测试做的很好, 这些小模块的隐患在前期就被消除了。就不会出现上述的情况。


当然,集成测试和系统测试发现问题,最终的根源也出在代码上, 可能就是某个函数的bug,

但是它们不是专门针对函数级别测试的。

通常单元测试发现bug效率最高,代价最小

因为该测试是在了解内部小模块的实现细节的基础上做的测试。针对性非常强。

通常单元测试的好处不仅是减少了bug,而且还促使你优化代码结构,设计出更易于理解和维护的代码。

单元测试既然有这么多好处,那么自然的,Python语言就在标准库里面提供了一个 单元测试的框架, 就叫unittest

python中的unittest是受java里面的JUnit的启发而创建的。并且和它有类似的使用风格。

比如:支持自动化,支持初始化、清除设置,将测试组织成 用例、套件这样的层次关系。

要学习unittest,我们先要理解下面几个重要概念:

test fixture:装置

表示要进行 某些测试前的准备工作 和 结束后的清除工作。 比如要测试一个数据库查找 学生数据的函数,准备工作 就可以是连接数据库, 清除工作可以是 断开和数据库的连接

test case:用例

这个就是 具体的 对单个函数、方法 的测试工作了。 检查某个函数或者方法一个测试点的功能是否正确

test suite:套件

这是 test case 或者其他test suite 的集合。如果测试用例比作文件的话, suite就像文件夹。包含了文件和其他文件夹。

test runner: 执行器

它是 最终控制测试 执行 , 并且输出测试结果的模块。 它可以提供一个图形界面 也可以提供 命令行界面给 用户使用,来选择执行测试,并且呈现测试结果。

明白了这些概念,在下一篇中,我们就给大家演示一下,如何使用python中的unittest库

最后感谢每一个认真阅读我文章的人,下面这个网盘链接也是我费了几天时间整理的非常全面的,希望也能帮助到有需要的你!

在这里插入图片描述

这些资料,对于想转行做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……

如果你不想一个人野蛮生长,找不到系统的资料,问题得不到帮助,坚持几天便放弃的感受的话,可以点击下方小卡片加入我们群,大家可以一起讨论交流,里面会有各种软件测试资料和技术交流。

敲字不易,如果此文章对你有帮助的话,点个赞收个藏来个关注,给作者一个鼓励。也方便你下次能够快速查找。

自学推荐B站视频:

零基础转行软件测试:38天自学完软件测试,拿到了字节的测试岗offer,堪称B站最好的视频!

自动化测试进阶:已上岸华为,涨薪20K,2022最适合自学的python自动化测试教程,自己花16800买的,无偿分享

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码小怡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值