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 相关文章推荐
Linux 下 Python 实现按任意键退出的实现方法
Sep 25 Python
Python爬取十篇新闻统计TF-IDF
Jan 03 Python
Django视图和URL配置详解
Jan 31 Python
python远程邮件控制电脑升级版
May 23 Python
使用pandas的box_plot去除异常值
Dec 10 Python
tensorflow之获取tensor的shape作为max_pool的ksize实例
Jan 04 Python
python单例设计模式实现解析
Jan 07 Python
python列表返回重复数据的下标
Feb 10 Python
Python自动化测试笔试面试题精选
Mar 12 Python
pip安装tensorflow的坑的解决
Apr 19 Python
利用python 读写csv文件
Sep 10 Python
详解基于Facecognition+Opencv快速搭建人脸识别及跟踪应用
Jan 21 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
使用laravel的migrate创建数据表的方法
2019/09/30 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
基于jQuery的简单的列表导航菜单
2011/03/02 Javascript
javascript动态加载二
2012/08/22 Javascript
jQuery+CSS 半开折叠效果原理及代码(自写)
2013/03/04 Javascript
js捕获鼠标滚轮事件代码
2013/12/16 Javascript
js实现网页自动刷新可制作节日倒计时效果
2014/05/27 Javascript
JQuery $.each遍历JavaScript数组对象实例
2014/09/01 Javascript
jquery实现清新实用的网页菜单效果
2015/08/28 Javascript
Node.js websocket使用socket.io库实现实时聊天室
2017/02/20 Javascript
node.js中axios使用心得总结
2017/11/29 Javascript
Node.js npm命令运行node.js脚本的方法
2018/10/10 Javascript
vue通过style或者class改变样式的实例代码
2018/10/30 Javascript
python调用java的Webservice示例
2014/03/10 Python
python3.5+tesseract+adb实现西瓜视频或头脑王者辅助答题
2018/01/17 Python
Python cookbook(数据结构与算法)同时对数据做转换和换算处理操作示例
2018/03/23 Python
Python 转换文本编码实现解析
2019/08/27 Python
Tensorflow: 从checkpoint文件中读取tensor方式
2020/02/10 Python
用Python绘制漫步图实例讲解
2020/02/26 Python
Python datetime 格式化 明天,昨天实例
2020/03/02 Python
简单了解python列表和元组的区别
2020/05/14 Python
Python HTMLTestRunner测试报告view按钮失效解决方案
2020/05/25 Python
Python实现删除某列中含有空值的行的示例代码
2020/07/20 Python
详解基于Scrapy的IP代理池搭建
2020/09/29 Python
python基于pygame实现飞机大作战小游戏
2020/11/19 Python
移动端HTML5实现文件上传功能【附代码】
2016/03/25 HTML / CSS
SIDESTEP荷兰:在线购买鞋子
2019/11/18 全球购物
Nike墨西哥官网:Nike MX
2020/08/30 全球购物
PHP面试题-$message和$$message的区别
2015/12/08 面试题
《玩具柜台前的孩子》教学反思
2014/02/13 职场文书
气象学专业个人求职信
2014/03/15 职场文书
导师就业推荐信范文
2014/05/22 职场文书
建筑工地大门标语
2014/06/18 职场文书
教师思想作风整顿个人剖析材料
2014/10/10 职场文书
2016党员干部廉政准则学习心得体会
2016/01/20 职场文书
涨工资申请书应该怎么写?
2019/07/08 职场文书