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 28 Python
python 系统调用的实例详解
Jul 11 Python
Python中实现变量赋值传递时的引用和拷贝方法
Apr 29 Python
python 使用sys.stdin和fileinput读入标准输入的方法
Oct 17 Python
值得收藏,Python 开发中的高级技巧
Nov 23 Python
python程序变成软件的实操方法
Jun 24 Python
Mac 使用python3的matplot画图不显示的解决
Nov 23 Python
如何使用python3获取当前路径及os.path.dirname的使用
Dec 13 Python
python实现音乐播放器 python实现花框音乐盒子
Feb 25 Python
学生如何注册Pycharm专业版以及pycharm的安装
Sep 24 Python
Pycharm创建文件时自动生成文件头注释(自定义设置作者日期)
Nov 24 Python
解决Pymongo insert时会自动添加_id的问题
Dec 05 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
DC动漫人物排行
2020/03/03 欧美动漫
如何使用PHP中的字符串函数
2006/10/09 PHP
PHP添加Xdebug扩展的方法
2014/02/12 PHP
实例讲解yii2.0在php命令行中运行的步骤
2015/12/01 PHP
jQuery中绑定事件的命名空间详解
2011/04/05 Javascript
jQuery使用数组编写图片无缝向左滚动
2012/12/11 Javascript
jquery获取被勾选的checked(选中)的那一行的3列和4列的值
2013/07/04 Javascript
Jquery实现搜索框提示功能示例代码
2013/08/13 Javascript
js调用iframe实现打印页面内容的方法
2014/03/04 Javascript
node.js中的fs.close方法使用说明
2014/12/17 Javascript
js实现带圆角的两级导航菜单效果代码
2015/08/24 Javascript
jQuery+PHP实现微信转盘抽奖功能的方法
2016/05/25 Javascript
原生js实现秒表计时器功能
2017/02/16 Javascript
xmlplus组件设计系列之树(Tree)(9)
2017/05/02 Javascript
浅谈js的解析顺序 作用域 严格模式
2017/10/23 Javascript
浅谈在vue项目中如何定义全局变量和全局函数
2017/10/24 Javascript
vue首次赋值不触发watch的解决方法
2018/09/11 Javascript
[46:49]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.19
2020/12/24 DOTA
python 写的一个爬虫程序源码
2016/02/28 Python
Python切片操作深入详解
2018/07/27 Python
对python 操作solr索引数据的实例详解
2018/12/07 Python
Python3 执行系统命令并获取实时回显功能
2019/07/09 Python
如何将你的应用迁移到Python3的三个步骤
2019/12/22 Python
python爬虫实例之获取动漫截图
2020/05/31 Python
python 基于opencv操作摄像头
2020/12/24 Python
Python爬虫+tkinter界面实现历史天气查询的思路详解
2021/02/22 Python
纯css3实现鼠标经过图片显示描述的动画效果
2014/09/01 HTML / CSS
纯CSS3实现漂亮的input输入框动画样式库(Text input love)
2018/12/29 HTML / CSS
canvas与html5实现视频截图功能示例
2016/12/15 HTML / CSS
HTML5 HTMLCollection和NodeList的区别详解
2020/04/29 HTML / CSS
EJB实例的生命周期
2016/10/28 面试题
化学专业毕业生自荐信
2013/11/15 职场文书
工商企业管理实习自我鉴定
2013/12/04 职场文书
卫生院健康教育实施方案
2014/06/07 职场文书
MySQL sql_mode的使用详解
2021/05/08 MySQL
前端实现滑动按钮AJAX与后端交互的示例代码
2022/02/24 Javascript