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中使用__slots__方法的详细教程
Apr 28 Python
python实现颜色空间转换程序(Tkinter)
Dec 31 Python
Python 25行代码实现的RSA算法详解
Apr 10 Python
Python3利用Dlib19.7实现摄像头人脸识别的方法
May 11 Python
Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围
Jun 25 Python
python画图把时间作为横坐标的方法
Jul 07 Python
QML使用Python的函数过程解析
Sep 26 Python
django实现类似触发器的功能
Nov 15 Python
Python 模拟生成动态产生验证码图片的方法
Feb 01 Python
使用python3 实现插入数据到mysql
Mar 02 Python
Python unittest单元测试框架实现参数化
Apr 29 Python
Flask中sqlalchemy模块的实例用法
Aug 02 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中iconv函数使用方法
2008/05/24 PHP
PHPMailer邮件类利用smtp.163.com发送邮件方法
2008/09/11 PHP
修改PHP的memory_limit限制的方法分享
2012/02/21 PHP
基于preg_match_all采集后数据处理的一点心得笔记(编码转换和正则匹配)
2014/01/31 PHP
PHP浮点比较大小的方法
2016/02/14 PHP
Symfony的安装和配置方法
2016/03/17 PHP
laravel中Redis队列监听中断的分析
2020/09/14 PHP
PHP7 其他修改
2021/03/09 PHP
Javascript读取cookie函数代码
2010/10/16 Javascript
jquery星级插件、支持页面中多次使用
2012/03/25 Javascript
基于mootools插件实现遮罩层新手引导
2012/05/24 Javascript
Javascript alert消息换行的方法
2013/08/07 Javascript
javascript验证上传文件的类型限制必须为某些格式
2013/11/14 Javascript
JS获取url参数、主域名的方法实例分析
2016/08/03 Javascript
JS与jQuery实现隔行变色的方法
2016/09/09 Javascript
基于vue中css预加载使用sass的配置方式详解
2018/03/13 Javascript
jQuery创建折叠式菜单
2019/06/15 jQuery
Vue watch响应数据实现方法解析
2020/07/10 Javascript
[06:30]DOTA2英雄梦之声_第15期_死亡先知
2014/06/21 DOTA
[47:03]完美世界DOTA2联赛PWL S3 Galaxy Racer vs Phoenix 第二场 12.10
2020/12/13 DOTA
Python中除法使用的注意事项
2014/08/21 Python
python下载文件记录黑名单的实现代码
2017/10/24 Python
python中用logging实现日志滚动和过期日志删除功能
2019/08/20 Python
Python 使用office365邮箱的示例
2020/10/29 Python
Python爬虫后获取重定向url的两种方法
2021/01/19 Python
使用CSS3的ruby-position固定注音位置的用法示例
2016/07/05 HTML / CSS
美的官方商城:Midea
2016/09/14 全球购物
介绍一下linux的文件系统
2012/03/20 面试题
教师辞职报告范文
2014/01/20 职场文书
铲车司机岗位职责
2014/03/15 职场文书
合作协议书模板
2014/10/10 职场文书
2014房屋登记授权委托书
2014/10/13 职场文书
武夷山导游词
2015/02/03 职场文书
七个非常实用的Python工具包总结
2021/06/15 Python
C#连接ORACLE出现乱码问题的解决方法
2021/10/05 Oracle
MySQL分区路径子分区再分区
2022/04/13 MySQL