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 相关文章推荐
利用PyInstaller将python程序.py转为.exe的方法详解
May 03 Python
Python中几种属性访问的区别与用法详解
Oct 10 Python
python 提取key 为中文的json 串方法
Dec 31 Python
对django xadmin自定义菜单的实例详解
Jan 03 Python
Python玩转PDF的各种骚操作
May 06 Python
浅谈pycharm使用及设置方法
Sep 09 Python
Anaconda 查看、创建、管理和使用python环境的方法
Dec 03 Python
Python逐行读取文件内容的方法总结
Feb 14 Python
Python中如何添加自定义模块
Jun 09 Python
python各种excel写入方式的速度对比
Nov 10 Python
pycharm配置QtDesigner的超详细方法
Jan 25 Python
详细总结Python常见的安全问题
May 21 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无限分类代码,支持数组格式化、直接输出菜单两种方式
2011/05/18 PHP
Laravel路由研究之domain解决多域名问题的方法示例
2019/04/04 PHP
jQuery的链式调用浅析
2010/12/03 Javascript
JavaScript闭包详解
2015/02/02 Javascript
javascript中使用new与不使用实例化对象的区别
2015/06/22 Javascript
AngularJs解决跨域问题案例详解(简单方法)
2016/05/19 Javascript
Three.js快速入门教程
2016/09/09 Javascript
JavaScript中利用构造器函数模拟类的方法
2017/02/16 Javascript
在vue项目创建的后初始化首次使用stylus安装方法分享
2018/01/25 Javascript
JavaScript显式数据类型转换详解
2019/03/18 Javascript
在JavaScript中使用严格模式(Strict Mode)
2019/06/13 Javascript
vue实现二级导航栏效果
2019/10/19 Javascript
JavaScript枚举选择jquery插件代码实例
2020/11/17 jQuery
Python多线程学习资料
2012/12/19 Python
使用wxPython获取系统剪贴板中的数据的教程
2015/05/06 Python
在Python中处理日期和时间的基本知识点整理汇总
2015/05/22 Python
Pycharm 2020最新永久激活码(附最新激活码和插件)
2020/09/17 Python
Python如何访问字符串中的值
2020/02/09 Python
英国建筑用品在线:Building Supplies Online(BSO)
2018/04/30 全球购物
办公室内勤工作职责
2013/12/11 职场文书
自荐书模板
2013/12/19 职场文书
给男朋友的道歉信
2014/01/12 职场文书
试用期员工考核制度
2014/01/22 职场文书
培训楼经理岗位责任制
2014/02/10 职场文书
公证书标准格式
2014/04/10 职场文书
今冬明春火灾防控工作方案
2014/05/29 职场文书
高中学生自我评价范文
2014/09/23 职场文书
2014物价局民主生活会对照检查材料思想汇报
2014/09/24 职场文书
四风查摆剖析材料
2014/10/10 职场文书
小学生五一劳动节演讲稿
2015/03/18 职场文书
2015年保洁员工作总结
2015/05/04 职场文书
银行资信证明
2015/06/17 职场文书
遗嘱格式范本
2015/08/07 职场文书
《蜜蜂引路》教学反思
2016/02/22 职场文书
「海贼王」112.9万粉丝纪念图标公布
2022/03/21 日漫
Win11 引入 Windows 365 云操作系统,适应疫情期间混合办公模式:启动时直接登录、模
2022/04/06 数码科技