博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python单元测试
阅读量:7048 次
发布时间:2019-06-28

本文共 1131 字,大约阅读时间需要 3 分钟。

在Python的圈子里常流行一句话:"动态一时爽,重构火葬场",我们知道Python写起来很方便,但在重构或者对某部分代码修改时, 可能会造成"牵一发而动全身",所以对于Python项目,特别是大型项目来说单元测试来保证代码质量是非常有必要的。

单元测试(Unit Testing)

1. 针对程序模块进行正确性检验

2. 一个函数、一个类进行验证

3. 自底向上保证程序的正确性

 

单元测试的目的:

1. 保证代码逻辑的正确性

2. 使得代码易测,高类聚、低耦合

3. 回归测试放在改一处整个服务不可用的情况

 

单元测试一般需要覆盖正常值、异常值和边界值,示例如下:

bin.py

1 def binary_search(b_list, target): 2     """ 3     二分查找 4     :param b_list: 5     :param target: 6     :return: 7     """ 8     b_list = sorted(b_list) 9     left, right = 0, len(b_list) - 110     while left <= right:11         mid = (left + right) // 212         if b_list[mid] > target:13             right = mid - 114         elif b_list[mid] < target:15             left = mid + 116         else:17             return mid18     return None19 20 21 def test():22     # 正常值23     assert binary_search([3, 5, 7, 8, 9], 5) == 124 25     # 边界值26     assert binary_search([3, 5, 7, 8, 9], 3) == 027     assert binary_search([3, 5, 7, 8, 9], 9) == 428 29     # 异常值30     assert binary_search([3, 5, 7, 8, 9], 0) is None31     assert binary_search([], 3) is None

运行 pytest bin.py,如果测试用例全部通过则:

转载于:https://www.cnblogs.com/FG123/p/10765941.html

你可能感兴趣的文章
深入理解JS的delete
查看>>
BZOJ2085 : [Poi2010]Hamsters
查看>>
proc文件系统、sysfs文件系统、kobject操作
查看>>
发送验证码
查看>>
多线程开发之三 GCD
查看>>
在scrollView中使用pageControl
查看>>
MongoDB Linux环境安装及配置[转]
查看>>
错误 1 未知的服务器标记“asp:ScriptManager”。
查看>>
Spark里边:Worker源代码分析和架构
查看>>
WebForm和MVC中都可以使用的路由
查看>>
解决 - java.lang.OutOfMemoryError: unable to create new native thread
查看>>
(算法)二分查找的搜索区间
查看>>
linux Cron 执行Django 任务计划
查看>>
hdu 5465 Clarke and puzzle(前缀和,异或,nim博弈)
查看>>
Android采用Volley具体的例子展示完整的异步加载数据(一)
查看>>
ZetCode PyQt4 tutorial widgets II
查看>>
Objective-C辛格尔顿
查看>>
asp.net(C#)页面事件顺序
查看>>
项目适配iOS9遇到的一些问题及解决办法(更新两个小问题)
查看>>
LPC4370 ACDHS speed and DMA
查看>>