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 ORM框架SQLAlchemy学习笔记之数据查询实例
Jun 10 Python
几个提升Python运行效率的方法之间的对比
Apr 03 Python
python中字典dict常用操作方法实例总结
Apr 04 Python
Python实现删除时保留特定文件夹和文件的示例
Apr 27 Python
Python3之不使用第三方变量,实现交换两个变量的值
Jun 26 Python
Django 中自定义 Admin 样式与功能的实现方法
Jul 04 Python
关于PyTorch源码解读之torchvision.models
Aug 17 Python
pandas 对group进行聚合的例子
Dec 27 Python
Python中import导入不同目录的模块方法详解
Feb 18 Python
python 邮件检测工具mmpi的使用
Jan 04 Python
pytorch常用数据类型所占字节数对照表一览
May 17 Python
Python日志模块logging用法
Jun 05 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提取中英文词语以及数字的首字母的方法介绍
2013/04/23 PHP
PHP+memcache实现消息队列案例分享
2014/05/21 PHP
PHP获取毫秒级时间戳的方法
2015/04/15 PHP
利用php_imagick实现复古效果的方法
2016/10/18 PHP
PHP通过文件路径获取文件名的实例代码
2018/10/14 PHP
laravel model模型定义实现开启自动管理时间created_at,updated_at
2019/10/17 PHP
node中socket.io的事件使用详解
2014/12/15 Javascript
Java File类的常用方法总结
2015/03/18 Javascript
AngularJS 日期格式化详解
2015/12/23 Javascript
详解Jquery实现ready和bind事件
2016/04/14 Javascript
全面了解addEventListener和on的区别
2016/07/14 Javascript
几种二级联动案例(jQuery\Array\Ajax php)
2016/08/13 Javascript
jQuery实现的表格前端排序功能示例
2017/09/18 jQuery
angular基于ng-alain定义自己的select组件示例
2018/02/23 Javascript
使用Angular CLI进行Build(构建)和Serve详解
2018/03/24 Javascript
jQuery中的类名选择器(.class)用法简单示例
2018/05/14 jQuery
从零开始在NPM上发布一个Vue组件的方法步骤
2018/12/20 Javascript
分分钟入门python语言
2018/03/20 Python
Python使用pyshp库读取shapefile信息的方法
2018/12/29 Python
详解python3 + Scrapy爬虫学习之创建项目
2019/04/12 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
2019/08/20 Python
docker-py 用Python调用Docker接口的方法
2019/08/30 Python
关于Keras Dense层整理
2020/05/21 Python
tensorflow模型转ncnn的操作方式
2020/05/25 Python
详解python UDP 编程
2020/08/24 Python
Python实现LR1文法的完整实例代码
2020/10/25 Python
python中random模块详解
2021/03/01 Python
一套C#面试题
2013/10/09 面试题
幼儿园教师个人反思
2014/01/30 职场文书
计算机网络工程专业职业生涯规划书
2014/03/10 职场文书
供货协议书范本
2014/04/22 职场文书
幼儿园六一儿童节演讲稿
2015/03/19 职场文书
2016年教师学习教师法心得体会
2016/01/20 职场文书
CSS实现隐藏搜索框功能(动画正反向序列)
2021/07/21 HTML / CSS
MySQL中datetime时间字段的四舍五入操作
2021/10/05 MySQL
漫画「狩龙人拉格纳」公开TV动画预告图
2022/03/22 日漫