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 相关文章推荐
Python基本数据类型详细介绍
Mar 11 Python
浅谈Scrapy框架普通反爬虫机制的应对策略
Dec 28 Python
python复制文件到指定目录的实例
Apr 27 Python
利用python的socket发送http(s)请求方法示例
May 07 Python
selenium+python实现自动化登录的方法
Sep 04 Python
Django如何简单快速实现PUT、DELETE方法
Jul 24 Python
Pycharm 2019 破解激活方法图文详解
Oct 11 Python
使用python-pptx包批量修改ppt格式的实现
Feb 14 Python
Keras设置以及获取权重的实现
Jun 19 Python
Python打印不合法的文件名
Jul 31 Python
PyMongo 查询数据的实现
Jun 28 Python
Python作用域和名称空间的详细介绍
Apr 13 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
PHP5中使用DOM控制XML实现代码
2010/05/07 PHP
PHP不用递归实现无限分级的例子分享
2014/04/18 PHP
laravel 5 实现模板主题功能
2015/03/02 PHP
jQuery实现单击按钮遮罩弹出对话框(仿天猫的删除对话框)
2014/04/10 Javascript
jQuery+PHP实现动态数字展示特效
2015/03/14 Javascript
详解JavaScript中void语句的使用
2015/06/04 Javascript
用JavaScript判断CSS浏览器类型前缀的两种方法
2015/10/08 Javascript
JS实现不使用图片仿Windows右键菜单效果代码
2015/10/22 Javascript
jQuery改变form表单的action,并进行提交的实现代码
2016/05/25 Javascript
浅析jQuery Ajax通用js封装
2016/06/22 Javascript
js利用clipboardData实现截屏粘贴功能
2016/10/12 Javascript
jQuery Validate 校验多个相同name的方法
2017/05/18 jQuery
jQuery实现节点的追加、替换、删除、复制功能示例
2017/07/11 jQuery
Vue的百度地图插件尝试使用
2017/09/06 Javascript
详解用函数式编程对JavaScript进行断舍离
2017/09/18 Javascript
Vue中使用 setTimeout() setInterval()函数的问题
2018/09/13 Javascript
JS字符串与二进制的相互转化实例代码详解
2019/06/28 Javascript
javascript实现支付宝滑块验证码效果
2020/07/24 Javascript
基于JavaScript实现轮播图效果
2021/01/02 Javascript
[04:54]DOTA2-DPC中国联赛1月31日Recap集锦
2021/03/11 DOTA
用python实现批量重命名文件的代码
2012/05/25 Python
简单介绍Python中的struct模块
2015/04/28 Python
Python入门_浅谈数据结构的4种基本类型
2017/05/16 Python
在pycharm中python切换解释器失败的解决方法
2018/10/29 Python
python3+PyQt5 实现Rich文本的行编辑方法
2019/06/17 Python
Python+OpenCV+pyQt5录制双目摄像头视频的实例
2019/06/28 Python
约瑟夫·特纳男装:Joseph Turner
2017/10/10 全球购物
瑞典轮胎在线:Tirendo.se
2018/06/21 全球购物
《桃花心木》教学反思
2014/02/17 职场文书
《小猪家的桃花树》教学反思
2014/04/11 职场文书
2014年党员承诺书范文
2014/05/20 职场文书
2014年民政局关于保密工作整改措施
2014/09/19 职场文书
模范班主任事迹材料
2014/12/17 职场文书
项目经理岗位职责范本
2015/04/01 职场文书
2015年度对口支援工作总结
2015/07/22 职场文书
清洁工工作总结
2015/08/11 职场文书