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中的元类编程入门指引
Apr 15 Python
Python三种遍历文件目录的方法实例代码
Jan 19 Python
python OpenCV学习笔记直方图反向投影的实现
Feb 07 Python
tensorflow入门之训练简单的神经网络方法
Feb 26 Python
关于python2 csv写入空白行的问题
Jun 22 Python
python去除文件中重复的行实例
Jun 29 Python
Python实现去除列表中重复元素的方法总结【7种方法】
Feb 16 Python
Python实现时间序列可视化的方法
Aug 06 Python
python实现的爬取电影下载链接功能示例
Aug 26 Python
Django框架HttpResponse对象用法实例分析
Nov 01 Python
对Python 字典元素进行删除的方法
Jul 31 Python
python 实现全球IP归属地查询工具
Dec 18 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
我的论坛源代码(二)
2006/10/09 PHP
改变Apache端口等配置修改方法
2008/06/05 PHP
destoon各类调用汇总
2014/06/20 PHP
PHP的Yii框架的基本使用示例
2015/08/21 PHP
PHP安装BCMath扩展的方法
2019/02/13 PHP
IE7提供XMLHttpRequest对象为兼容
2007/03/08 Javascript
弹出广告特效代码(一个IP只弹出一次)
2007/05/11 Javascript
javascript RadioButtonList获取选中值
2009/04/09 Javascript
javascript function调用时的参数检测常用办法
2010/02/26 Javascript
node.js中的http.createClient方法使用说明
2014/12/15 Javascript
jquery实现textarea 高度自适应
2015/03/11 Javascript
JS中字符串trim()使用示例
2015/05/26 Javascript
简介JavaScript中POSITIVE_INFINITY值的使用
2015/06/05 Javascript
JavaScript数据库TaffyDB用法实例分析
2015/07/27 Javascript
jQuery对html元素的取值与赋值实例详解
2015/12/18 Javascript
jQuery 3.0 的变化及使用方法
2016/02/01 Javascript
js仿iphone秒表功能 计算平均数
2017/01/11 Javascript
微信小程序 ecshop地址三级联动实现实例代码
2017/02/28 Javascript
Vue实现内部组件轮播切换效果的示例代码
2018/04/07 Javascript
解决vue打包后vendor.js文件过大问题
2019/07/03 Javascript
在VUE中实现文件下载并判断状态的方法
2019/11/08 Javascript
JS实现小星星特效
2019/12/24 Javascript
[02:59]DOTA2完美大师赛主赛事第三日精彩集锦
2017/11/25 DOTA
[43:49]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
在服务器端实现无间断部署Python应用的教程
2015/04/16 Python
pandas.DataFrame 根据条件新建列并赋值的方法
2018/04/08 Python
解决python "No module named pip" 的问题
2018/10/13 Python
python数据类型可变不可变知识点总结
2020/03/06 Python
Visual Studio code 配置Python开发环境
2020/09/11 Python
css3 border-image使用说明
2010/06/23 HTML / CSS
《藏戏》教学反思
2014/02/11 职场文书
优秀中职教师事迹材料
2014/08/26 职场文书
2014年行政人事工作总结
2014/12/09 职场文书
社区禁毒宣传活动总结
2015/05/07 职场文书
生日祝酒词大全
2015/08/10 职场文书
2021-4-3课程——SQL Server查询【2】
2021/04/05 SQL Server