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生成器(Generator)详解
Apr 13 Python
Python实现配置文件备份的方法
Jul 30 Python
Python中条件判断语句的简单使用方法
Aug 21 Python
python实现颜色空间转换程序(Tkinter)
Dec 31 Python
Python实现二叉堆
Feb 03 Python
Python的SimpleHTTPServer模块用处及使用方法简介
Jan 22 Python
Python中的单行、多行、中文注释方法
Jul 19 Python
浅析Python 读取图像文件的性能对比
Mar 07 Python
Python 限定函数参数的类型及默认值方式
Dec 24 Python
python读取dicom图像示例(SimpleITK和dicom包实现)
Jan 16 Python
Python描述符descriptor使用原理解析
Mar 21 Python
python用tkinter实现一个gui的翻译工具
Oct 26 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投票系统防刷票判断流程分析
2012/02/04 PHP
PHP MVC框架路由学习笔记
2016/03/02 PHP
动态添加js事件实现代码
2009/03/12 Javascript
jQuery语法总结和注意事项小结
2012/11/11 Javascript
artDialog双击会关闭对话框的修改过程分享
2013/08/05 Javascript
JavaScript自定义事件介绍
2013/08/29 Javascript
JavaScript常用小技巧小结
2014/12/29 Javascript
jQuery提示插件alertify使用指南
2015/04/21 Javascript
基于jQuery通过jQuery.form.js插件实现异步上传
2015/12/13 Javascript
动态加载JavaScript文件的两种方法
2016/04/22 Javascript
javascript实现抽奖程序的简单实例
2016/06/07 Javascript
jQuery animate easing使用方法图文详解
2016/06/17 Javascript
js canvas实现QQ拨打电话特效
2017/05/10 Javascript
js传递数组参数到后台controller的方法
2018/03/29 Javascript
Vue中使用vux配置代码详解
2018/09/16 Javascript
浅谈layui数据表格判断问题(加入表单元素),设置单元格样式
2019/10/26 Javascript
[04:28]DOTA2亚洲邀请赛小组赛第五日 TOP10精彩集锦
2015/02/03 DOTA
numpy.random.seed()的使用实例解析
2018/02/03 Python
解决Python print 输出文本显示 gbk 编码错误问题
2018/07/13 Python
python画图——实现在图上标注上具体数值的方法
2019/07/08 Python
详解html5 shiv.js和respond.min.js
2018/01/24 HTML / CSS
如何写出好的Java代码
2014/04/25 面试题
会计岗位职责
2013/11/08 职场文书
汽车促销活动方案
2014/03/31 职场文书
企业安全生产承诺书
2014/05/22 职场文书
美德少年事迹材料1000字
2014/08/21 职场文书
物流专业专科生职业生涯规划书
2014/09/14 职场文书
党员个人对照检查材料范文
2014/09/24 职场文书
岳庙导游词
2015/02/04 职场文书
旷工辞退通知书
2015/04/17 职场文书
公积金具结保证书
2015/05/11 职场文书
手把手教你制定暑期学习计划,让你度过充实的暑假
2019/08/22 职场文书
Python爬虫中urllib3与urllib的区别是什么
2021/07/21 Python
浅谈css实现背景颜色半透明的两种方法
2021/12/06 HTML / CSS
深入浅出讲解Java8函数式编程
2022/01/18 Java/Android
Redis 的查询很快的原因解析及Redis 如何保证查询的高效
2022/03/16 Redis