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 字符串中的字符倒转
Sep 06 Python
Python多进程通信Queue、Pipe、Value、Array实例
Nov 21 Python
使用Python的Twisted框架编写简单的网络客户端
Apr 16 Python
对numpy 数组和矩阵的乘法的进一步理解
Apr 04 Python
Python嵌套列表转一维的方法(压平嵌套列表)
Jul 03 Python
对pandas读取中文unicode的csv和添加行标题的方法详解
Dec 12 Python
python并发编程多进程 模拟抢票实现过程
Aug 20 Python
关于Python内存分配时的小秘密分享
Sep 05 Python
Python3实现将一维数组按标准长度分隔为二维数组
Nov 29 Python
Python IDE环境之 新版Pycharm安装详细教程
Mar 05 Python
将pycharm配置为matlab或者spyder的用法说明
Jun 08 Python
Anaconda安装pytorch及配置PyCharm 2021环境
Jun 04 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生成图形(Libchart)实例
2013/11/06 PHP
PHP文件上传操作实例详解
2016/09/27 PHP
PHP foreach遍历多维数组实现方式
2016/11/16 PHP
FormValidate 表单验证功能代码更新并提供下载
2008/08/23 Javascript
在javascript将NodeList作为Array数组处理的方法
2010/07/09 Javascript
JavaScript定时器详解及实例
2013/08/01 Javascript
JavaScript包装对象使用介绍
2013/08/29 Javascript
Jquery ajax执行顺序 返回自定义错误信息(实例讲解)
2013/11/06 Javascript
js怎么判断flash swf文件是否加载完毕
2014/08/14 Javascript
js实现防止被iframe的方法
2015/07/03 Javascript
easyui Draggable组件实现拖动效果
2015/08/19 Javascript
Angularjs---项目搭建图文教程
2016/07/08 Javascript
AngularJS通过$location获取及改变当前页面的URL
2016/09/23 Javascript
解析jQueryEasyUI的使用
2016/11/22 Javascript
javaScript嗅探执行神器-sniffer.js
2017/02/14 Javascript
前端开发之CSS原理详解
2017/03/11 Javascript
js tab栏切换代码实例解析
2019/09/03 Javascript
Python使用Pycrypto库进行RSA加密的方法详解
2016/06/06 Python
Python中json格式数据的编码与解码方法详解
2016/07/01 Python
Python编程实现双击更新所有已安装python模块的方法
2017/06/05 Python
python用户管理系统
2018/03/13 Python
python检测IP地址变化并触发事件
2018/12/26 Python
python把1变成01的步骤总结
2019/02/27 Python
Python语言进阶知识点总结
2019/05/28 Python
用vue.js组件模拟v-model指令实例方法
2019/07/05 Python
python3.7 使用pymssql往sqlserver插入数据的方法
2019/07/08 Python
Django 在iframe里跳转顶层url的例子
2019/08/21 Python
Django-simple-captcha验证码包使用方法详解
2020/11/28 Python
HTML5 canvas标签实现刮刮卡效果
2015/04/24 HTML / CSS
威盛公司软件C++工程师笔试题面试题
2012/07/16 面试题
入党积极分子思想汇报范文
2014/01/05 职场文书
诉讼财产保全担保书
2014/05/20 职场文书
校运会口号
2014/06/18 职场文书
房地产工程部经理岗位职责
2015/04/09 职场文书
高中政治教学反思
2016/02/23 职场文书
Javascript使用integrity属性进行安全验证
2021/11/07 Javascript