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中操作字典之fromkeys()方法的使用
May 21 Python
Python获取系统默认字符编码的方法
Jun 04 Python
Python提取网页中超链接的方法
Sep 18 Python
用python处理MS Word的实例讲解
May 08 Python
Python利用heapq实现一个优先级队列的方法
Feb 03 Python
Python列表list操作相关知识小结
Jan 29 Python
Python基于yield遍历多个可迭代对象
Mar 12 Python
Pytorch使用PIL和Numpy将单张图片转为Pytorch张量方式
May 25 Python
Python正则表达式高级使用方法汇总
Jun 18 Python
Python根据指定文件生成XML的方法
Jun 29 Python
Python趣味实例,实现一个简单的抽奖刮刮卡
Jul 18 Python
python实现学生信息管理系统源码
Feb 22 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使用redis的有序集合zset实现延迟队列应用示例
2020/02/20 PHP
PHP时间相关常用函数用法示例
2020/06/03 PHP
JavaScript Event学习第十章 一些可替换的事件对
2010/02/10 Javascript
浅谈JavaScript编程语言的编码规范
2011/10/21 Javascript
javascript 星级评分效果(手写)
2012/12/24 Javascript
js判断浏览器类型为ie6时不执行
2014/06/15 Javascript
Jquery动态添加及删除页面节点元素示例代码
2014/06/16 Javascript
jQuery手机浏览器中拖拽动作的艰难性分析
2015/02/04 Javascript
JavaScript通过使用onerror设置默认图像显示代替alt
2016/03/01 Javascript
jQueryUI 拖放排序遇到滚动条时有可能无法执行排序的小bug及解决方案
2016/12/19 Javascript
Angular的模块化(代码分享)
2016/12/26 Javascript
JavaScript日期对象(Date)基本用法示例
2017/01/18 Javascript
jquery拼接ajax 的json和字符串拼接的方法
2017/03/11 Javascript
老生常谈javascript中逻辑运算符&amp;&amp;和||的返回值问题
2017/04/13 Javascript
微信小程序模版渲染详解
2018/01/26 Javascript
vue 利用路由守卫判断是否登录的方法
2018/09/29 Javascript
Vue在 Nuxt.js 中重定向 404 页面的方法
2019/04/23 Javascript
vue中使用props传值的方法
2019/05/08 Javascript
Vue获取页面元素的相对位置的方法示例
2020/02/05 Javascript
详解python开发环境搭建
2016/12/16 Python
详解Python3操作Mongodb简明易懂教程
2017/05/25 Python
详解Python import方法引入模块的实例
2017/08/02 Python
Python矩阵常见运算操作实例总结
2017/09/29 Python
python selenium自动上传有赞单号的操作方法
2018/07/05 Python
Python实现清理微信僵尸粉功能示例【基于itchat模块】
2020/05/29 Python
详解PyQt5中textBrowser显示print语句输出的简单方法
2020/08/07 Python
Subside Sports德国:足球球衣和球迷商品
2019/06/08 全球购物
什么是Smarty变量操作符?如何使用Smarty变量操作符
2014/07/18 面试题
北京天润融通.net面试题笔试题
2012/02/20 面试题
linux面试题参考答案(10)
2016/10/26 面试题
土木工程求职信
2014/05/29 职场文书
市场营销专业求职信
2014/06/17 职场文书
职工的安全责任书范文!
2019/07/02 职场文书
话题作文之诚信
2019/11/28 职场文书
读《工匠精神》有感:热爱工作,精益求精
2019/12/28 职场文书
教你快速构建一个基于nginx的web集群项目
2021/11/27 Servers