WEB开发网
开发学院软件开发Python Python自动单元测试框架 阅读

Python自动单元测试框架

 2007-03-30 12:28:08 来源:WEB开发网   
核心提示: 这样只需要在suite()方法中返回该类的一个实例就可以了:def suite():return WidgetTestSuite()如果用于测试的类中所有的测试方法都以test开,Python程序员甚至可以用PyUnit模块提供的makeSuite()方法来构造一个TestSuite:de

这样只需要在suite()方法中返回该类的一个实例就可以了:

  def suite():
  return WidgetTestSuite()

如果用于测试的类中所有的测试方法都以test开,Python程序员甚至可以用PyUnit模块提供的makeSuite()方法来构造一个TestSuite:

  def suite():
  return unittest.makeSuite(WidgetTestCase, "test")

在PyUnit测试框架中,TestSuite类可以看成是TestCase类的一个容器,用来对多个测试用例进行组织,这样多个测试用例可以自动在一次测试中全部完成。事实上,TestSuite除了可以包含TestCase外,也可以包含TestSuite,从而可以构成一个更加庞大的测试用例集:

suite1 = mysuite1.TheTestSuite()
suite2 = mysuite2.TheTestSuite()
alltests = unittest.TestSuite((suite1, suite2))

3.4 实施测试

编写测试用例(TestCase)并将它们组织成测试用例集(TestSuite)的最终目的只有一个:实施测试并获得最终结果。PyUnit使用TestRunner类作为测试用例的基本执行环境,来驱动整个单元测试过程。Python开发人员在进行单元测试时一般不直接使用TestRunner类,而是使用其子类TextTestRunner来完成测试,并将测试结果以文本方式显示出来:

runner = unittest.TextTestRunner()
runner.run(suite)

使用TestRunner来实施测试的例子如例7所示,

  例7. text_runner.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 testSize(self):
    self.assertEqual(self.widget.getSize(), (40, 40))
  def testResize(self):
    self.widget.resize(100, 100)    
    self.assertEqual(self.widget.getSize(), (100, 100))    
# 测试
if __name__ == "__main__":
  # 构造测试集
  suite = unittest.TestSuite()
  suite.addTest(WidgetTestCase("testSize"))
  suite.addTest(WidgetTestCase("testResize"))
  
  # 执行测试
  runner = unittest.TextTestRunner()
  runner.run(suite)

上一页  3 4 5 6 7 8 9 10  下一页

Tags:Python 自动 单元

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接