WEB开发网
开发学院软件开发Python Python 测试框架: 用 Python 测试框架简化测试 阅读

Python 测试框架: 用 Python 测试框架简化测试

 2010-09-22 11:23:51 来源:WEB开发网   
核心提示: 为了体会以上示例的简单性,可以对比过去的 Python 测试文档中复杂的示例测试,Python 测试框架: 用 Python 测试框架简化测试(3),比如:#test_old.py-TheoldwayofdoingthingsimportunittestclassTruthTest(uni

为了体会以上示例的简单性,可以对比过去的 Python 测试文档中复杂的示例测试,比如:

# test_old.py - The old way of doing things

import unittest

class TruthTest(unittest.TestCase):
  def testTrue(self):
    assert True == 1

  def testFalse(self):
    assert False == 0

if __name__ == '__main__':
unittest.main()

看到了吗?这么多代码只是为了支持两行测试代码!首先,代码需要一个 import 语句,这与要测试的代码完全无关,因为测试本身简单地忽略模块,只使用内置的 Python 值,比如 True 和 False。另外,要创建一个类,但是它不支持或增强测试,因为测试实际上没有使用它们的 self 参数做任何事情。最后,需要两行固定不变的代码,这样才能从命令行运行这个测试。

有使用 unittest 经验的用户可能认为,上面的示例应该使用 TruthTest 类从 TestCase 类继承的测试方法。例如,他们会建议使用 assertEqual(),而不是手工测试是否相等的 assert 语句,在这种情况下测试会使用 self 而不是忽略它:

# alternate version of the TestTrue method
  ...
  def testTrue(self):
    self.assertEqual(True, 1)
    ...

对这个建议有三条反对意见。

首先,调用方法会影响可读性。尽管 assertEqual() 方法名能够表明要测试两个值是否相等,但是代码看起来仍然不像是比较,对于熟悉 Python 语言的开发人员,不如 Python == 操作符那么明确。

第二,正如在本系列的第三篇文章中将看到的,新的测试框架现在知道如何检查 assert 语句,从而查明造成测试失败的条件,这意味着简单的 assert 语句现在能够产生有意义的测试失败消息,它提供的信息与调用 assertEqual() 等老方法的结果差不多。

上一页  1 2 3 4 5 6 7  下一页

Tags:Python 框架

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