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 相关文章推荐
在DigitalOcean的服务器上部署flaskblog应用
Dec 19 Python
Python中在脚本中引用其他文件函数的实现方法
Jun 23 Python
python代码 if not x: 和 if x is not None: 和 if not x is None:使用介绍
Sep 21 Python
Python urls.py的三种配置写法实例详解
Apr 28 Python
对python中raw_input()和input()的用法详解
Apr 22 Python
PyTorch上搭建简单神经网络实现回归和分类的示例
Apr 28 Python
Python/ArcPy遍历指定目录中的MDB文件方法
Oct 27 Python
手把手教你如何安装Pycharm(详细图文教程)
Nov 28 Python
python函数不定长参数使用方法解析
Dec 14 Python
python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例
Mar 02 Python
python爬虫基础之urllib的使用
Dec 31 Python
Python中lru_cache的使用和实现详解
Jan 25 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
怎样在UNIX系统下安装MySQL
2006/10/09 PHP
php采集时被封ip的解决方法
2010/08/29 PHP
PHP程序漏洞产生的原因分析与防范方法说明
2014/03/06 PHP
TNC vs BOOM BO3 第二场2.13
2021/03/10 DOTA
JavaScript Eval 函数使用
2010/03/23 Javascript
用js来解决ajax读取页面乱码
2010/11/28 Javascript
Jquery 插件开发笔记整理
2011/01/17 Javascript
关于jquery.validate1.9.0前台验证的使用介绍
2013/04/26 Javascript
jquery中checkbox全选失效的解决方法
2014/12/26 Javascript
jQuery中 prop() attr()使用详解
2015/05/19 Javascript
JavaScript进阶练习及简单实例分析
2016/06/03 Javascript
原生js实现类似fullpage的单页/全屏滚动
2017/01/22 Javascript
Bootstrap缩略图与警告框学习使用
2017/02/08 Javascript
jQuery源码解读之extend()与工具方法、实例方法详解
2017/03/30 jQuery
JS脚本加载后执行相应回调函数的操作方法
2018/02/28 Javascript
使用Angular Cli如何创建Angular私有库详解
2019/01/30 Javascript
微信小程序利用Canvas绘制图片和竖排文字详解
2019/06/25 Javascript
Python reduce()函数的用法小结
2017/11/15 Python
Python用户推荐系统曼哈顿算法实现完整代码
2017/12/01 Python
Python整数对象实现原理详解
2019/07/01 Python
详解Python是如何实现issubclass的
2019/07/24 Python
python解释器spython使用及原理解析
2019/08/24 Python
详解如何在cmd命令窗口中搭建简单的python开发环境
2019/08/29 Python
python自动下载图片的方法示例
2020/03/25 Python
Python解析微信dat文件的方法
2020/11/30 Python
如何用用Python将地址标记在地图上
2021/02/07 Python
Melijoe美国官网:法国奢侈童装购物网站
2017/04/19 全球购物
美国存储和组织商店:The Container Store
2017/08/16 全球购物
欧洲最大的预定车位市场:JustPark
2020/01/06 全球购物
传统软件工程与面向对象的软件工程有什么区别
2012/05/31 面试题
出租房屋协议书
2014/09/14 职场文书
秋季运动会演讲稿
2014/09/16 职场文书
自习课吵闹检讨书范文
2014/09/26 职场文书
初婚未育证明样本
2015/06/18 职场文书
孙振耀退休感言
2015/08/01 职场文书
mysql下的max_allowed_packet参数设置详解
2022/02/12 MySQL