首页建站经验 Python中unittest模块做UT(单元测试)使用实例

Python中unittest模块做UT(单元测试)使用实例

待测试的类(Widget.py)# Widget.py# Python 2.7.6class Widget:def __init__(self, size = (40,40)):self.size = sizedef getSize(self):return self.sizedef reSize(self,…

待测试的类(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,表示通过。

本文来自网络,不代表1号站长-站长学院|资讯交流平台立场。转载请注明出处: https://www.1cn.cc/jianzhan/jingyan/17490.html
上一篇JavaScript中setMonth()方法的使用详解
下一篇 Python3中的2to3转换工具使用示例
admin

作者: admin

这里可以再内容模板定义一些文字和说明,也可以调用对应作者的简介!或者做一些网站的描述之类的文字或者HTML!

为您推荐

评论列表()

    联系我们

    联系我们

    0898-88888888

    在线咨询: QQ交谈

    邮箱: email@wangzhan.com

    工作时间:周一至周五,9:00-17:30,节假日休息

    关注微信
    微信扫一扫关注我们

    微信扫一扫关注我们

    关注微博
    返回顶部