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

Python自动单元测试框架

 2007-03-30 12:28:08 来源:WEB开发网   
核心提示: testCase = WidgetTestCase()一个测试用例通常只对软件模块中的一个方法进行测试,采用覆盖runTest()方法来构造测试用例在PyUnit中称为静态方法,Python自动单元测试框架(6),如果要对同一个软件模块中的多个方法进行测试,通常需要构造多个执行测试的类,只
testCase = WidgetTestCase()

一个测试用例通常只对软件模块中的一个方法进行测试,采用覆盖runTest()方法来构造测试用例在PyUnit中称为静态方法,如果要对同一个软件模块中的多个方法进行测试,通常需要构造多个执行测试的类,如例5所示:

    例5. static_multi.py
import unittest
# 测试getSize()方法的测试用例
class WidgetSizeTestCase(unittest.TestCase):
  def runTest(self):
    widget = Widget()
    self.assertEqual(widget.getSize(), (40, 40))
# 测试resize()方法的测试用例
class WidgetResizeTestCase(unittest.TestCase):
  def runTest(self):
    widget = Widget()
    widget.resize(100, 100)
    self.assertEqual(widget.getSize(), (100, 100))

采用静态方法,Python程序员不得不为每个要测试的方法编写一个测试类(该类通过覆盖runTest()方法来执行测试),并在每一个测试类中生成一个待测试的对象。在为同一个软件模块编写测试用例时,很多时候待测对象有着相同的初始状态,因此采用上述方法的Python程序员不得不在每个测试类中为待测对象进行同样的初始化工作,而这往往是一项费时且枯燥的工作。

一种更好的解决办法是采用PyUnit提供的动态方法,只编写一个测试类来完成对整个软件模块的测试,这样对象的初始化工作可以在setUp()方法中完成,而资源的释放则可以在tearDown()方法中完成,如例6所示:

    例6. dynamic.py
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))

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

Tags:Python 自动 单元

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