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 collections模块实例讲解
Apr 07 Python
Pandas Shift函数的基础入门学习笔记
Nov 16 Python
python 调用有道api接口的方法
Jan 03 Python
Python Pandas数据中对时间的操作
Jul 30 Python
python统计字符的个数代码实例
Feb 07 Python
Python阶乘求和的代码详解
Feb 14 Python
浅谈python3打包与拆包在函数的应用详解
May 02 Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
Jun 01 Python
Python pymsql模块的使用
Sep 07 Python
Python使用tkinter实现小时钟效果
Feb 22 Python
Python爬虫框架之Scrapy中Spider的用法
Jun 28 Python
Pytorch中expand()的使用(扩展某个维度)
Jul 15 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中使用parse_url()对网址进行解析的实现代码(parse_url详解)
2012/01/03 PHP
php通过递归方式复制目录和子目录的方法
2015/03/13 PHP
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(下:动画篇)
2010/03/24 Javascript
利用JQuery和JS实现奇偶行背景颜色自定义效果
2012/11/19 Javascript
使用js操作css实现js改变背景图片示例
2014/03/10 Javascript
jQuery判断div随滚动条滚动到一定位置后停止
2014/04/02 Javascript
使用JavaScript链式编程实现模拟Jquery函数
2014/12/21 Javascript
javascript实现连续赋值
2015/08/10 Javascript
jQuery+Ajax+PHP+Mysql实现分页显示数据实例讲解
2015/09/27 Javascript
微信小程序开发之圆形菜单 仿建行圆形菜单实例
2016/12/12 Javascript
jquery基于layui实现二级联动下拉选择(省份城市选择)
2017/06/20 jQuery
jQuery事件_动力节点Java学院整理
2017/07/05 jQuery
Vue实现穿梭框效果
2020/09/30 Javascript
[01:21]DOTA2新纪元-7.0新版本即将开启!
2016/12/11 DOTA
python单线程实现多个定时器示例
2014/03/30 Python
Python开发之快速搭建自动回复微信公众号功能
2016/04/22 Python
Python scikit-learn 做线性回归的示例代码
2017/11/01 Python
python 读取目录下csv文件并绘制曲线v111的方法
2018/07/06 Python
Python Tkinter 简单登录界面的实现
2019/06/14 Python
Python中logging日志库实例详解
2020/02/19 Python
Python sorted对list和dict排序
2020/06/09 Python
Python连接mysql方法及常用参数
2020/09/01 Python
pycharm-professional-2020.1下载与激活的教程
2020/09/21 Python
PyCharm 光标变成黑块的解决方式
2021/02/06 Python
pandas map(),apply(),applymap()区别解析
2021/02/24 Python
端口镜像是怎么实现的
2014/03/25 面试题
钳工实习自我鉴定
2013/09/19 职场文书
教育局长自荐信范文
2013/12/22 职场文书
乡镇三项教育实施方案
2014/03/30 职场文书
新春寄语大全
2014/04/09 职场文书
2015年安全生产责任书
2015/01/30 职场文书
销售员岗位职责范本
2015/04/11 职场文书
上班旷工检讨书
2015/08/15 职场文书
如何写一份成功的商业计划书
2019/06/25 职场文书
标准发言稿结尾
2019/07/18 职场文书
python套接字socket通信
2022/04/01 Python