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实现多线程采集的2个代码例子
Jul 07 Python
让python同时兼容python2和python3的8个技巧分享
Jul 11 Python
Python随机生成信用卡卡号的实现方法
May 14 Python
深入学习python的yield和generator
Mar 10 Python
Django实现自定义404,500页面教程
Mar 26 Python
PyQt5每天必学之QSplitter实现窗口分隔
Apr 19 Python
详解Django 中是否使用时区的区别
Jun 14 Python
python中csv文件的若干读写方法小结
Jul 04 Python
Python中print函数简单使用总结
Aug 05 Python
Python统计分析模块statistics用法示例
Sep 06 Python
Python进程池与进程锁之语法学习
Apr 11 Python
Python中的协程(Coroutine)操作模块(greenlet、gevent)
May 30 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版微信自定义回复功能示例
2016/12/05 PHP
laravel unique验证、确认密码confirmed验证以及密码修改验证的方法
2019/10/16 PHP
ymPrompt的doHandler方法来实现获取子窗口返回值的方法
2010/06/25 Javascript
分享一个我自己写的ToolTip提示插件(附源码)
2013/01/20 Javascript
JS 如何获取radio选中后的值及不选择取radio的值
2013/10/28 Javascript
node.js中的buffer.copy方法使用说明
2014/12/14 Javascript
jquery控制显示服务器生成的图片流
2015/08/04 Javascript
基于jQuery通过jQuery.form.js插件实现异步上传
2015/12/13 Javascript
详解js私有作用域中创建特权方法
2016/01/25 Javascript
js友好的时间返回函数
2016/08/24 Javascript
Vue.js 父子组件通讯开发实例
2016/09/06 Javascript
JS中图片压缩的方法小结
2017/11/14 Javascript
不到200行 JavaScript 代码实现富文本编辑器的方法
2018/01/03 Javascript
学习node.js 断言的使用详解
2019/03/18 Javascript
VUE+node(express)实现前后端分离
2019/10/13 Javascript
JS实现压缩上传图片base64长度功能
2019/12/03 Javascript
[48:20]OpTic vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[01:08:48]LGD vs OG 2018国际邀请赛淘汰赛BO3 第三场 8.25
2018/08/29 DOTA
Python实现Windows上气泡提醒效果的方法
2015/06/03 Python
Python中的__slots__示例详解
2017/07/06 Python
python实现神经网络感知器算法
2017/12/20 Python
Django框架使用内置方法实现登录功能详解
2019/06/12 Python
python 判断字符串中是否含有汉字或非汉字的实例
2019/07/15 Python
Python多叉树的构造及取出节点数据(treelib)的方法
2019/08/09 Python
通过实例了解Python str()和repr()的区别
2020/01/17 Python
Python字符串hashlib加密模块使用案例
2020/03/10 Python
opencv 图像加法与图像融合的实现代码
2020/07/08 Python
jupyter notebook 写代码自动补全的实现
2020/11/02 Python
唤醒头发毛囊的秘密武器:Grow Gorgeous
2016/08/28 全球购物
什么是索引指示器
2012/08/20 面试题
生产部岗位职责范文
2014/02/07 职场文书
《台湾的蝴蝶谷》教学反思
2014/02/20 职场文书
我爱我的祖国演讲稿
2014/05/04 职场文书
出纳年终工作总结2014
2014/12/05 职场文书
幼儿园重阳节活动总结
2015/05/05 职场文书
芙蓉镇观后感
2015/06/10 职场文书