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实现问号表达式(?)的方法
Nov 27 Python
Python中DJANGO简单测试实例
May 11 Python
python3操作mysql数据库的方法
Jun 23 Python
使用pyecharts在jupyter notebook上绘图
Apr 23 Python
Pycharm技巧之代码跳转该如何回退
Jul 16 Python
python中列表和元组的区别
Dec 18 Python
Python实现的视频播放器功能完整示例
Feb 01 Python
对numpy中布尔型数组的处理方法详解
Apr 17 Python
python将pandas datarame保存为txt文件的实例
Feb 12 Python
python 猴子补丁(monkey patch)
Jun 26 Python
python开发实例之Python的Twisted框架中Deferred对象的详细用法与实例
Mar 19 Python
python - asyncio异步编程
Apr 06 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实现小型站点广告管理
2006/10/09 PHP
php读取mysql的简单实例
2014/01/15 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
js的一些常用方法小结
2011/06/29 Javascript
ExtJS[Desktop]实现图标换行示例代码
2013/11/17 Javascript
Javascript基础教程之while语句
2015/01/18 Javascript
详细解密jsonp跨域请求
2015/04/15 Javascript
jquery实现简单的轮换出现效果实例
2015/07/23 Javascript
Javascript中apply、call、bind的巧妙使用
2016/08/18 Javascript
BootStrap Table实现server分页序号连续显示功能(当前页从上一页的结束序号开始)
2017/09/12 Javascript
Vue.js子组件向父组件通信的方法实例代码详解
2018/12/10 Javascript
利用angular自动编译andriod APK的绕坑经历分享
2019/03/08 Javascript
JS匿名函数内部this指向问题详析
2019/05/10 Javascript
微信小程序发布新版本时自动提示用户更新的方法
2019/06/07 Javascript
JavaScript Window浏览器对象模型原理解析
2020/05/30 Javascript
js实现Element中input组件的部分功能并封装成组件(实例代码)
2021/03/02 Javascript
python实现猜数字游戏(无重复数字)示例分享
2014/03/29 Python
使用相同的Apache实例来运行Django和Media文件
2015/07/22 Python
使用python 和 lint 删除项目无用资源的方法
2017/12/20 Python
Windows系统下PhantomJS的安装和基本用法
2018/10/21 Python
pycharm新建一个python工程步骤
2019/07/16 Python
python进程间通信Queue工作过程详解
2019/11/01 Python
Python如何计算语句执行时间
2019/11/22 Python
pytorch 求网络模型参数实例
2019/12/30 Python
PyCharm 2020.2 安装详细教程
2020/09/25 Python
面向对象设计的原则是什么
2013/02/13 面试题
生产主管岗位职责
2013/11/10 职场文书
项目副经理岗位职责
2013/12/30 职场文书
有创意的广告词
2014/03/18 职场文书
高等教育专业自荐信范文
2014/03/26 职场文书
企业口号大全
2014/06/12 职场文书
伊琍体标语
2014/06/25 职场文书
法人授权委托书范本
2014/09/17 职场文书
应届毕业生求职简历自我评价
2015/03/02 职场文书
餐厅保洁员岗位职责
2015/04/10 职场文书
2015年“我们的节日·重阳节”活动总结
2015/07/29 职场文书