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 26 Python
Python中列表和元组的相关语句和方法讲解
Aug 20 Python
Python 提取dict转换为xml/json/table并输出的实现代码
Aug 28 Python
Python使用post及get方式提交数据的实例
Jan 24 Python
Python 实现的 Google 批量翻译功能
Aug 26 Python
Flask框架路由和视图用法实例分析
Nov 07 Python
在Python中使用filter去除列表中值为假及空字符串的例子
Nov 18 Python
Python正则表达式急速入门(小结)
Dec 16 Python
pytorch .detach() .detach_() 和 .data用于切断反向传播的实现
Dec 27 Python
Python是什么 Python的用处
May 26 Python
如何使用python-opencv批量生成带噪点噪线的数字验证码
Dec 21 Python
Python的collections模块真的很好用
Mar 01 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 IPV6正则表达式验证代码
2010/02/16 PHP
php session实现多级目录存放实现代码
2016/02/03 PHP
禁止刷新,回退的JS
2006/11/25 Javascript
Array.prototype.slice.apply的使用方法
2010/03/17 Javascript
jquery中的ajax方法怎样通过JSONP进行远程调用
2014/05/04 Javascript
JQuery勾选指定name的复选框集合并显示的方法
2015/05/18 Javascript
angularjs自定义ng-model标签的属性
2016/01/21 Javascript
jQuery图片左右滚动代码 有左右按钮实例
2016/06/20 Javascript
JS模仿腾讯图片站的图片翻页按钮效果完整实例
2016/06/21 Javascript
jQuery UI结合Ajax创建可定制的Web界面
2016/06/22 Javascript
网页挂马方式整理及详细介绍
2016/11/03 Javascript
jQuery自定义组件(导入组件)
2016/11/08 Javascript
详解ECharts使用心得总结
2016/12/06 Javascript
JavaScript获取服务器时间的方法详解
2016/12/11 Javascript
微信小程序删除处理详解
2017/08/16 Javascript
深入浅析javascript函数中with
2018/10/28 Javascript
Vuex 使用 v-model 配合 state的方法
2018/11/13 Javascript
基于vue实现移动端圆形旋钮插件效果
2018/11/28 Javascript
在vue中使用vuex,修改state的值示例
2019/11/08 Javascript
vue中解决微信html5原生ios虚拟键返回不刷新问题
2020/10/20 Javascript
Python中运行并行任务技巧
2015/02/26 Python
python K近邻算法的kd树实现
2018/09/06 Python
解决django中ModelForm多表单组合的问题
2019/07/18 Python
python中open函数的基本用法示例
2019/09/07 Python
pytorch实现查看当前学习率
2020/06/24 Python
python如何安装下载后的模块
2020/07/03 Python
django rest framework 自定义返回方式
2020/07/12 Python
总结python 三种常见的内存泄漏场景
2020/11/20 Python
解决PyCharm无法使用lxml库的问题(图解)
2020/12/22 Python
通信专业个人自我鉴定
2013/10/21 职场文书
单位办理社保介绍信
2014/01/10 职场文书
cf战队收人广告词
2014/03/14 职场文书
《猴子种果树》教学反思
2014/04/26 职场文书
防灾减灾标语
2014/10/07 职场文书
狼牙山五壮士观后感
2015/06/09 职场文书
学校运动会加油词
2015/07/18 职场文书