Python单元测试框架(附例子)

什么是单元测试?

  单元测试在[Python中做是为了在应用程序的开发阶段的早期识别错误时的错误不太经常和修复成本更低。

  单元测试是用Python设计的脚本化代码级测试,用于验证功能的小“单元”。单元测试是一种基于测试夹具的面向对象框架。

Python单元测试技术

  Python单元测试主要涉及测试特定模块而不访问任何相关代码。开发人员可以使用存根和模拟等技术将代码分成“单元”,并对各个部分进行单元级测试。

  • 测试驱动开发TDD:单元测试应该与Python一起完成,并且开发人员使用测试驱动开发方法。在TDD方法中,您首先设计Python单元测试,然后才继续编写将实现此功能的代码。

  • 存根和模拟:它们是模拟正在测试的伪方法的两种主要技术。甲存根用于填充在能正常运行所需的单元测试一些依赖性。一个模拟的另一方面是它运行,我们把断言测试一个假的对象。

    两种方法的意图相同,以消除测试类或函数的所有依赖性。

Python单元测试框架

  为了简化单元测试过程并提高项目质量,建议使用Python单元测试框架。单元测试框架包括

  • PyUnit: PyUnit支持固件,测试用例,测试套件和测试运行器,用于自动测试代码。在PyUnit中,您可以将测试用例组织到具有相同夹具的套件中

  • 鼻子: Nose的内置插件可以帮助您进行输出捕获,代码覆盖,doctests等。鼻子语法非常简单,减少了编写测试的障碍。它扩展了Python单元测试,使测试更容易。

  • Doctest: Doctest测试脚本在docstring中以文件底部的小函数进行。Doctest允许您通过运行文档中包含的示例并验证它们是否返回了预期结果来测试代码。doctest的用例不太详细,也没有特殊情况。它们可用作模块及其组件的主要用例的表达文档。

使用PyUnit进行单元测试

Pyunit是JUnit的Python端口。作为Pyunit的一部分,在unittest模块中有五个关键类。

  • TestCase类:TestCase类承载测试例程并提供钩子,用于制作每个例程并在此后进行清理
  • TestSuite类:它作为一个集合容器,它可以拥有多个测试用例对象和多个testsuites对象
  • TestLoader类:此类加载本地或外部文件定义的测试用例和套件。它会发出一个具有这些套件和案例的测试对象
  • TextTestRunner类:要运行测试,它需要一个标准平台来执行测试
  • TestResults类:它为测试结果提供标准容器

使用PyUnit为Python测试设计测试用例

单元测试提供了一个基类,测试用例,可用于创建新的测试用例。对于设计测试用例,使用的是三组方法

unittest.TestCase生成

setUp()
teardown()

skipTest(aMesg:string)
fail(aMesg:string)

id():string
shortDescription():string

在第一组中是前后测试钩。setup()方法在每个测试例程之前开始,例程之后的teardown()。

第二组方法控制测试执行。两种方法都将消息字符串作为输入,并且都取消正在进行的测试。但是skiptest()方法会中止当前测试,而fail()方法会完全失败。

最后或第三种方法有助于确定测试。方法id()返回一个字符串,该字符串由testcase对象和测试例程的名称组成。方法shortDescription()在每个测试例程的启动时返回docstr注释。

  • 使用Python单元测试的优点
  • 它可以帮助您在开发周期的早期检测错误
  • 它可以帮助您编写更好的程序
  • 它可以与其他测试方法和工具轻松同步
  • 它会有更少的错误
  • 将来修改起来更容易,后果更容易

每次阅读都有收获,你呢?

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,884评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,212评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,351评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,412评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,438评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,127评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,714评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,636评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,173评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,264评论 3 339
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,402评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,073评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,763评论 3 332
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,253评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,382评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,749评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,403评论 2 358

推荐阅读更多精彩内容