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中处理时间之clock()方法的使用
May 22 Python
Python匹配中文的正则表达式
May 11 Python
Python简单检测文本类型的2种方法【基于文件头及cchardet库】
Sep 18 Python
Python 实现选择排序的算法步骤
Apr 22 Python
python3 判断列表是一个空列表的方法
May 04 Python
基于python 爬虫爬到含空格的url的处理方法
May 11 Python
python topN 取最大的N个数或最小的N个数方法
Jun 04 Python
Pycharm导入Python包,模块的图文教程
Jun 13 Python
解决python3捕获cx_oracle抛出的异常错误问题
Oct 18 Python
如何利用python给图片添加半透明水印
Sep 06 Python
使用Django搭建网站实现商品分页功能
May 22 Python
OpenCV灰度化之后图片为绿色的解决
Dec 01 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
德生S2000收音机更换“钕铁硼”全频扬声器
2021/03/02 无线电
PHP chmod 函数与批量修改文件目录权限
2010/05/10 PHP
ThinkPHP3.0略缩图不能保存到子目录的解决方法
2012/09/30 PHP
php返回当前日期或者指定日期是周几
2015/05/21 PHP
在Laravel5.6中使用Swoole的协程数据库查询
2018/06/15 PHP
Javascript MD4
2006/12/20 Javascript
jquery的Theme和Theme Switcher使用小结
2010/09/08 Javascript
jqplot通过ajax动态画折线图的方法及思路
2013/12/08 Javascript
JS 排序输出实现table行号自增前端动态生成的tr
2014/08/13 Javascript
js对字符的验证方法汇总
2015/02/04 Javascript
jQuery给多个不同元素添加class样式的方法
2015/03/26 Javascript
jQuery通过写入cookie实现更换网页背景的方法
2016/04/15 Javascript
解决vue组件中使用v-for出现告警问题及v for指令介绍
2017/11/11 Javascript
vue watch普通监听和深度监听实例详解(数组和对象)
2018/08/16 Javascript
「中高级前端面试」JavaScript手写代码无敌秘籍(推荐)
2019/04/08 Javascript
js实现简单掷骰子小游戏
2019/10/24 Javascript
微信小程序实现搜索功能
2020/03/10 Javascript
element中Steps步骤条和Tabs标签页关联的解决
2020/12/08 Javascript
[01:05:36]VP vs TNC Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
python中的__init__ 、__new__、__call__小结
2014/04/25 Python
Python and、or以及and-or语法总结
2015/04/14 Python
仅用50行代码实现一个Python编写的计算器的教程
2015/04/17 Python
Python3.x版本中新的字符串格式化方法
2015/04/24 Python
基于Python如何使用AIML搭建聊天机器人
2016/01/27 Python
Python判断是否json是否包含一个key的方法
2018/12/31 Python
Python搭建代理IP池实现检测IP的方法
2019/10/27 Python
Python使用requests模块爬取百度翻译
2020/08/25 Python
html5版canvas自由拼图实例
2014/10/15 HTML / CSS
vue实现倒计时功能
2021/03/24 Vue.js
应届生服务员求职信
2013/10/31 职场文书
文化宣传方案
2014/03/13 职场文书
低碳生活倡议书
2014/04/14 职场文书
实习科室评语
2015/01/04 职场文书
淮阳太昊陵导游词
2015/02/10 职场文书
什么是执行力?9个故事告诉您:成功绝非偶然!
2019/07/05 职场文书
详解pytorch创建tensor函数
2022/03/22 Python