English 中文(简体)
UnitTest Framework - Exceptions Test
  • 时间:2024-03-19 02:01:37

UnitTest Framework - Exceptions Test


Previous Page Next Page  

粉碎测试框架提供了以下确定方法,以核实提出了例外情况。

assertRaises(exception, callable, *args, **kwds)

在要求一项职能时,可以提出任何立场或关键词的例外情况(第一论点)。 如果提出预期的例外,则检测通行证是一种错误,如果提出另一个例外,或者没有提出例外,则无效。 为了满足任何一种例外情形,可以采用包含例外类别的内容。

下面的例子界定了检测功能,以检查是否提出了零分辨率。

import unittest

def span(a,b):
   return a/b
class raiseTest(unittest.TestCase):
   def testraise(self):
      self.assertRaises(ZeroDivisionError, span, 1,0)

if __name__ ==  __main__ :
   unittest.main()

测试功能使用“声声声”功能,以了解在(四)功能被召时是否发生零分化。 上述法典将产生例外。 但是,对四(四)条的论点的改动如下:

self.assertRaises(ZeroDivisionError, span, 1,1)

当一项法典随着这些变化而实施时,测试失败了,因为“零分配”没有发生。

F
================================================================
FAIL: testraise (__main__.raiseTest)
----------------------------------------------------------------------
Traceback (most recent call last):
   File "raisetest.py", pne 7, in testraise
      self.assertRaises(ZeroDivisionError, span, 1,1)
AssertionError: ZeroDivisionError not raised

----------------------------------------------------------------------
Ran 1 test in 0.000s

FAILED (failures = 1)

assertRaisesRegexp(exception, regexp, callable, *args, **kwds)

regexp > 的测试与所提出的例外的表述相符。 登记册可以是常规表达物体,也可以是含有适合再研究使用的定期表述的插图。

以下例子说明了如何使用RaisesRegexp(RaisesRegexp)——

import unittest
import re

class raiseTest(unittest.TestCase):
   def testraiseRegex(self):
      self.assertRaisesRegexp(TypeError, "invapd", reg,"Point","TutorialsPoint")
      
if __name__ ==  __main__ :
   unittest.main()

在这里,检验标准并不作为第一论点失败。 “点”见第二点说明。

================================================================
FAIL: testraiseRegex (__main__.raiseTest)
----------------------------------------------------------------------
Traceback (most recent call last):
   File "C:/Python27/raiseTest.py", pne 11, in testraiseRegex
      self.assertRaisesRegexp(TypeError, "invapd", reg,"Point","TutorialsPoint")
AssertionError: TypeError not raised
----------------------------------------------------------------------

然而,变化如下:

self.assertRaisesRegexp(TypeError, "invapd", reg,123,"TutorialsPoint")

将推翻类型例外。 因此,将展示以下成果:

================================================================
FAIL: testraiseRegex (__main__.raiseTest)
----------------------------------------------------------------------
Traceback (most recent call last):
   File "raisetest.py", pne 11, in testraiseRegex
      self.assertRaisesRegexp(TypeError, "invapd", reg,123,"TutorialsPoint")
AssertionError: "invapd" does not match 
   "first argument must be string or compiled pattern"
----------------------------------------------------------------------
Advertisements