python 测试实现方法


Posted in Python onDecember 24, 2008

 1)doctest
使用doctest是一种类似于命令行尝试的方式,用法很简单,如下

def f(n): 
""" 
>>> f(1) 
1 
>>> f(2) 
2 
""" 
print(n) if __name__ == '__main__': 
import doctest 
doctest.testmod()

应该来说是足够简单了,另外还有一种方式doctest.testfile(filename),就是把命令行的方式放在文件里进行测试。

2)unittest
unittest历史悠久,最早可以追溯到上世纪七八十年代了,C++,Java里也都有类似的实现,Python里的实现很简单。
unittest在python里主要的实现方式是TestCase,TestSuite。用法还是例子起步。

from widget import Widget 
import unittest 
# 执行测试的类 
class WidgetTestCase(unittest.TestCase): 
def setUp(self): 
self.widget = Widget() 
def tearDown(self): 
self.widget.dispose() 
self.widget = None 
def testSize(self): 
self.assertEqual(self.widget.getSize(), (40, 40)) 
def testResize(self): 
self.widget.resize(100, 100) 
self.assertEqual(self.widget.getSize(), (100, 100)) 
# 测试 
if __name__ == "__main__": 
# 构造测试集 
suite = unittest.TestSuite() 
suite.addTest(WidgetTestCase("testSize")) 
suite.addTest(WidgetTestCase("testResize")) # 执行测试 
runner = unittest.TextTestRunner() 
runner.run(suite)

简单的说,1>构造TestCase(测试用例),其中的setup和teardown负责预处理和善后工作。2>构造测试集,添加用例3>执行测试需要说明的是测试方法,在Python中有N多测试函数,主要的有:
TestCase.assert_(expr[, msg])
TestCase.failUnless(expr[, msg])
TestCase.assertTrue(expr[, msg])
TestCase.assertEqual(first, second[, msg])
TestCase.failUnlessEqual(first, second[, msg])
TestCase.assertNotEqual(first, second[, msg])
TestCase.failIfEqual(first, second[, msg])
TestCase.assertAlmostEqual(first, second[, places[, msg]])
TestCase.failUnlessAlmostEqual(first, second[, places[, msg]])
TestCase.assertNotAlmostEqual(first, second[, places[, msg]])
TestCase.failIfAlmostEqual(first, second[, places[, msg]])
TestCase.assertRaises(exception, callable, ...)
TestCase.failUnlessRaises(exception, callable, ...)
TestCase.failIf(expr[, msg])
TestCase.assertFalse(expr[, msg])
TestCase.fail([msg])
Python 相关文章推荐
Python检测字符串中是否包含某字符集合中的字符
May 21 Python
Python的迭代器和生成器
Jul 29 Python
python版本的读写锁操作方法
Apr 25 Python
python中安装Scrapy模块依赖包汇总
Jul 02 Python
Python+树莓派+YOLO打造一款人工智能照相机
Jan 02 Python
Python+OpenCV目标跟踪实现基本的运动检测
Jul 10 Python
Python Socket编程之多线程聊天室
Jul 28 Python
快速排序的四种python实现(推荐)
Apr 03 Python
python远程连接MySQL数据库
Apr 19 Python
python通过链接抓取网站详解
Nov 20 Python
python输入一个水仙花数(三位数) 输出百位十位个位实例
May 03 Python
Python利器openpyxl之操作excel表格
Apr 17 Python
Python 面向对象 成员的访问约束
Dec 23 #Python
pymssql ntext字段调用问题解决方法
Dec 17 #Python
python 图片验证码代码
Dec 07 #Python
下载糗事百科的内容_python版
Dec 07 #Python
python 参数列表中的self 显式不等于冗余
Dec 01 #Python
Python GAE、Django导出Excel的方法
Nov 24 #Python
Python类的基础入门知识
Nov 24 #Python
You might like
php 判断访客是否为搜索引擎蜘蛛的函数代码
2011/07/29 PHP
比较简单实用的PHP无限分类源码分享(思路不错)
2011/10/13 PHP
php5.3 不支持 session_register() 此函数已启用的解决方法
2013/11/12 PHP
php使用smtp发送支持附件的邮件示例
2014/04/13 PHP
PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径
2014/06/30 PHP
ThinkPHP中处理表单中的注意事项
2014/11/22 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
WebGame《逆转裁判》完整版 代码下载(1月24日更新)
2007/01/29 Javascript
jquery为页面增加快捷键示例
2014/01/31 Javascript
用console.table()调试javascript
2014/09/04 Javascript
jQuery左侧大图右侧小图焦点图幻灯切换代码分享
2015/08/19 Javascript
AngularJS ng-app 指令实例详解
2016/07/30 Javascript
jquery请求servlet实现ajax异步请求的示例
2017/06/03 jQuery
基于JS实现html中placeholder属性提示文字效果示例
2018/04/19 Javascript
如何实现双向绑定mvvm的原理实现
2019/05/28 Javascript
element-ui table组件如何使用render属性的实现
2019/11/04 Javascript
layui前端时间戳转化实例
2019/11/15 Javascript
vue项目中在可编辑div光标位置插入内容的实现代码
2020/01/07 Javascript
对python数据切割归并算法的实例讲解
2018/12/12 Python
使用Python+wxpy 找出微信里把你删除的好友实例
2019/02/21 Python
Python3.5 Json与pickle实现数据序列化与反序列化操作示例
2019/04/29 Python
Django基础知识 URL路由系统详解
2019/07/18 Python
解决Jupyter因卸载重装导致的问题修复
2020/04/10 Python
python读取excel数据绘制简单曲线图的完整步骤记录
2020/10/30 Python
最新PyCharm 2020.2.3永久激活码(亲测有效)
2020/11/26 Python
详解python3 GUI刷屏器(附源码)
2021/02/18 Python
CK美国官网:Calvin Klein
2016/08/26 全球购物
外企求职信范文分享
2013/12/31 职场文书
公司合作协议书范本
2014/04/18 职场文书
文明市民先进事迹
2014/05/15 职场文书
八荣八耻演讲稿
2014/09/15 职场文书
教师自查自纠工作情况报告
2014/10/29 职场文书
模范教师事迹材料
2014/12/16 职场文书
2015年大学生实习评语
2015/03/25 职场文书
Jupyter Notebook 如何修改字体和大小以及更改字体样式
2021/06/03 Python
python DataFrame中stack()方法、unstack()方法和pivot()方法浅析
2022/04/06 Python