分享

Pyunit单元测试框架学习

 LibraryOfKevin 2011-06-06
1. 待测试类widget
#!/usr/bin/env python
#Filename: widget.py
class Widget:
    def __init__(self, size = (40, 40)):
        self.size = size
    def getSize(self):
        return self.size
    def resize(self, width, height):
        if width < 1  or height < 1:
            raise ValueError, "illegal size"
        self.size = (width, height)
    def dispose(self):
        pass

2. 自动化测试脚本
 
#!/usr/bin/env python
#coding:utf-8
#Filename: auto.py
from widget import Widget
import unittest
# 执行测试的类
class WidgetTestCase(unittest.TestCase):
    def setUp(self):
        self.widget = Widget()
    def tearDown(self):
        self.widget.dispose()
        self.widget = None
    def testdefaultsize(self):
        """Check that widgets are created with correct default size"""
        assert self.widget.getsize() == (40,40), 'incorrect default size'
    def testresize(self):
        """Check that widgets are resized with correc size"""
        self.assertRaises(ValueError, self.widget.resize, 0,0)
        self.widget.resize(100, 100)
        assert self.widget.getsize() == (100,100), 'wrong size after resize'

# 构造测试集
def suite1():
    #makeSuite方法创建一个由测试用例类内所有测试用例组成的测试套件
    #suite = unittest.makeSuite(WidgetTestCase,'test')
    suite1 = unittest.TestSuite()
    suite1.addTest(WidgetTestCase("testdefaultsize"))
    return suite1
def suite2():
    suite2 = unittest.TestSuite()
    suite2.addTest(WidgetTestCase("testresize"))
    return suite2

alltests = unittest.TestSuite((suite1(),suite2()))
#将测试结果保存到文件record中
filehandle = open('record','a')
runner = unittest.TextTestRunner(filehandle)
runner.run(alltests)
filehandle.close()
# 测试
#unittest模块包含一个main方法,可以方便地将测试模块转变为可以运行测试的脚本;
#main 使用unittest.TestLoader类来自动查找和加载模块内测试用例;
#之前已经使用test*惯例对测试方法进行命名
#if __name__ == "__main__":
#   unittest.main()




    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多