Python中unittest模块做UT(单元测试)使用实例


Posted in Python onJune 12, 2015

待测试的类(Widget.py)

# Widget.py 
# Python 2.7.6 
 
class Widget: 
  def __init__(self, size = (40,40)): 
    self.size = size 
  def getSize(self): 
    return self.size 
  def reSize(self,width,height): 
    if width <0 or height < 0: 
      raise ValueError, 'illegal size' 
    else: 
      self.size = (width,height) 
      return self.size 
  def dispose(self): 
    pass

测试类(Auto.py)

# coding=utf8 
# Auto.dy 
# Python 2.7.6 
 
from Widget import Widget #导入测试类模块Widget 
import unittest      #导入unittest模块  
 
 
class WidgetTestCase(unittest.TestCase): 
#让所有执行测试的类都继承于TestCase类,可以将TestCase看成是对特定类进行测试的方法的集合 
 
  #在setUp()方法中进行测试前的初始化工作。 
  def setUp(self):   
    self.widget = Widget() 
 
  #并在tearDown()方法中执行测试后的清除工作,setUp()和tearDown()都是TestCase类中定义的方法。 
  def tearDown(self): 
    self.widget = None 
 
  #测试Widget类中getSize方法 
  def testgetSize(self): 
    print "Test GetSize" 
    #对Widget类中getSize()方法的返回值和预期值进行比较,确保两者是相等的, 
    #assertEqual()也是TestCase类中定义的方法。 
    self.assertEqual(self.widget.getSize(), (40, 40)) 
     
  #测试Widget类中reSize方法 
  def testreSize(self): 
    print "Test Resize" 
    #对Widget类中reSize()方法的返回值和预期值进行比较,确保两者是相等的。 
    #assertEqual()也是TestCase类中定义的方法。 
    self.assertEqual(self.widget.reSize(50,100),(50,100)) 
   
 
#提供名为suite()的全局方法,PyUnit在执行测试的过程调用suit()方法来确定有多少个测试用例需要被执行, 
#可以将TestSuite看成是包含所有测试用例的一个容器。 
def suite(): 
  suite = unittest.TestSuite() 
  suite.addTest(WidgetTestCase("testgetSize"))#往此添加需要测试的方法testgetSize() 
  suite.addTest(WidgetTestCase("testreSize")) #往此添加需要测试的方法testreSize() 
  return suite  
 
if __name__ == "__main__": 
  unittest.main(defaultTest = 'suite') #在主函数中调用全局方法.

测试结果:

D:\Python>python27 Auto.py 
Test GetSize 
.Test Resize 
. 
------------------------------ 
Ran 2 tests in 0.004s 
 
OK

总结:
1。第一步:先写好测试类
2。第二步:导入unittest模块及测试的类,运用setup()方法做测试前的准备工作,如建立数据库连接,运用teardown()方法做测试后的清除工作,如取消数据库的链接,再对类中的方法逐一做测试。
3。第三步: 写suite()的全局方法,将要测试的方法,一一加入。
测试结果,有几个测试用例就有几个. 最后显示OK,表示通过。

Python 相关文章推荐
pyqt4教程之实现半透明的天气预报界面示例
Mar 02 Python
构建Python包的五个简单准则简介
Jun 15 Python
Python多线程实现同步的四种方式
May 02 Python
Sanic框架配置操作分析
Jul 17 Python
解决pyecharts在jupyter notebook中使用报错问题
Apr 23 Python
django+tornado实现实时查看远程日志的方法
Aug 12 Python
Python如何使用argparse模块处理命令行参数
Dec 11 Python
使用pyhon绘图比较两个手机屏幕大小(实例代码)
Jan 03 Python
Python使用pdb调试代码的技巧
May 03 Python
Django中F函数的使用示例代码详解
Jul 06 Python
Python快速实现一键抠图功能的全过程
Jun 29 Python
python编程简单几行代码实现视频转换Gif示例
Oct 05 Python
搞笑的程序猿:看看你是哪种Python程序员
Jun 12 #Python
Python 3.x 新特性及10大变化
Jun 12 #Python
Python实现比较两个列表(list)范围
Jun 12 #Python
在Linux系统上安装Python的Scrapy框架的教程
Jun 11 #Python
Python语言实现机器学习的K-近邻算法
Jun 11 #Python
在Linux下使用Python的matplotlib绘制数据图的教程
Jun 11 #Python
python中的代码编码格式转换问题
Jun 10 #Python
You might like
PHP+DBM的同学录程序(3)
2006/10/09 PHP
php中curl和file_get_content的区别
2014/05/10 PHP
php结合md5的加密解密算法实例
2016/09/30 PHP
PHP AjaxForm提交图片上传并显示图片源码
2016/11/29 PHP
PHP CURL与java http使用方法详解
2018/01/26 PHP
php实现二叉树中和为某一值的路径方法
2018/10/14 PHP
js鼠标及对象坐标控制属性详细解析
2013/12/14 Javascript
jQuery删除节点的三个方法即remove()detach()和empty()
2013/12/27 Javascript
js换图片效果可进行定时操作
2014/06/09 Javascript
浅谈js中变量初始化
2015/02/03 Javascript
javascript关于运动的各种问题经典总结
2015/04/27 Javascript
JavaScript计算某一天是星期几的方法
2015/08/05 Javascript
JavaScript中Function函数与Object对象的关系
2015/12/17 Javascript
jQuery图片渐变特效的简单实现
2016/06/25 Javascript
AngularJS入门教程之 XMLHttpRequest实例讲解
2016/07/27 Javascript
angularjs 源码解析之injector
2016/08/22 Javascript
js is_valid_filename验证文件名的函数
2017/07/19 Javascript
vue项目部署到Apache服务器中遇到的问题解决
2018/08/24 Javascript
angular 数据绑定之[]和{{}}的区别
2018/09/25 Javascript
js实现批量删除功能
2020/08/27 Javascript
[01:34]DOTA2 7.22版本新增神杖效果一览(敏捷英雄篇)
2019/05/28 DOTA
python 添加用户设置密码并发邮件给root用户
2016/07/25 Python
python中的turtle库函数简单使用教程
2018/07/23 Python
Laravel框架表单验证格式化输出的方法
2019/09/25 Python
pytorch中的自定义反向传播,求导实例
2020/01/06 Python
Python基于pip实现离线打包过程详解
2020/05/15 Python
协程Python 中实现多任务耗资源最小的方式
2020/10/19 Python
实例教程 纯CSS3打造非常炫的加载动画效果
2014/11/05 HTML / CSS
阿迪达斯奥地利官方商城:adidas.at
2016/10/16 全球购物
伦敦最有品味的百货:Liberty London
2016/11/12 全球购物
Oakley西班牙官方商店:太阳眼镜和男女运动服
2019/04/26 全球购物
小学生节约用水倡议书
2014/05/15 职场文书
幼儿园家长工作总结2015
2015/04/25 职场文书
医院合作意向书范本
2015/05/08 职场文书
看上去很美观后感
2015/06/10 职场文书
甜美蛋糕店的创业计划书模板,拿来即用!
2019/08/21 职场文书