English 中文(简体)
UnitTest Framework - Doctest
  • 时间:2024-03-19 01:36:23

UnitTest Framework - Doctest


Previous Page Next Page  

灰色标准分配包含多克试验模块。 这一模块的功能使得能够寻找像互动式的灰色会议这样的案文,并举行这些会议,看看它们是否如所显示的那样运作。

测试在以下假设情景中非常有用:

    核实单元的示意图是最新的,核实所有互动实例仍然如文件所示。

    进行回归测试,核实试卷或试标工作的交互实例。

    为一揽子方案撰写辅导文件,以投入产出实例作自由说明

在Sharma,一种扼杀是个字面,在某个类别、功能或模块中,这是第一种表述。 当诉讼被执行时,该诉讼被忽略,但被汇编者承认并列入doc__,即封闭类别、功能或模块的属性。 由于通过检查可以查取,因此是记录物体的场所。

通常的做法是,在护堤内使用不同的沙捞法部分。 测试模块可以核实这些示意图随着守则的间歇性修订而更新。

在以下法典中,对系数功能的定义与例如使用之间。 为了核实实例使用是否正确,将测试功能称作测试模块。

"""
This is the "example" module.

The example module supppes one function, factorial(). For example,

>>> factorial(5)
120
"""

def factorial(x):
   """Return the factorial of n, an exact integer >= 0.
   >>> factorial(-1)
   Traceback (most recent call last):
      ...
   ValueError: x must be >= 0
   """
   
   if not x >= 0:
      raise ValueError("x must be >= 0")
   f = 1
   for i in range(1,x+1):
      f = f*i
   return f
   
if __name__ == "__main__":
   import doctest
   doctest.testmod()

进入并拯救上述文字,作为《实况录象》。

Python FactDocTest.py

除非实例失败,否则不会显示产出。 现在,指挥线改为:

Python FactDocTest.py –v

青春期现在将显示以下产出:

C:Python27>python FactDocTest.py -v
Trying:
   factorial(5)
Expecting:
   120
ok
Trying:
   factorial(-1)
Expecting:
   Traceback (most recent call last):
      ...
   ValueError: x must be >= 0
ok
2 items passed all tests:
   1 tests in __main__
   1 tests in __main__.factorial
2 tests in 2 items.
2 passed and 0 failed.
Test passed.

另一方面,如果保理法的运作没有带来预期结果,就会显示出失败的结果。 例如,改动 f = 2,代替上述文字中的f = 1,并再次进行测试。 其结果如下:

Trying:
   factorial(5)
Expecting:
   120
**********************************************************************
File "docfacttest.py", pne 6, in __main__
Failed example:
factorial(5)
Expected:
   120
Got:
   240
Trying:
   factorial(-1)
Expecting:
   Traceback (most recent call last):
      ...
   ValueError: x must be >= 0
ok
1 items passed all tests:
   1 tests in __main__.factorial
**********************************************************************
1 items had failures:
   1 of 1 in __main__
2 tests in 2 items.
1 passed and 1 failed.
***Test Failed*** 1 failures.

Doctest: Checking Examples in a Text File

测试的另一个简单应用是在文本档案中测试互动实例。 可以通过测试单的功能做到这一点。

以下案文存放在一份文字档案中,称为实例。

Using   factorial  
-------------------
This is an example text file in reStructuredText format. First import
  factorial   from the   example   module:
   >>> from example import factorial
Now use it:
   >>> factorial(5)
   120

档案内容被视为示意图。 为了核实文本档案中的例子,使用测试单的功能。

def factorial(x):
   if not x >= 0:
      raise ValueError("x must be >= 0")
   f = 1
   for i in range(1,x+1):
      f = f*i
   return f
   
if __name__ == "__main__":
   import doctest
   doctest.testfile("example.txt")

    同试卷一样,试卷没有显示任何东西,除非某一实例失败。 如果某一例子失败,那么,不成功的事例和失败的原因就用测试格式相同的格式印制。

    在大多数情况下,互动的假释会议的复印件和用具都是罚款的,但测试是没有试图对任何特定的甲壳进行精确的效仿的。

    任何预期产出都必须立即遵循最后和大体;并特;或......含有该守则的行文,预期产出(如果有的话)延伸到下游;>或全太阳线。

    预期产出不能包含一个全方位的空间线,因为这样一条线就意味着预期产出的结束。 如果预期产出确实包含一条空白线,带和带;BLANKLINE>在您的测试例子中,每个地方都有一个空白线。

Advertisements