开发高质量软件的方法之一是为每个函数开发测试代码,而且在开发过程当中常常进行测试;面试
doctest模块提供了一个工具,扫描模块并根据程序中内嵌的文档字符串执行测试;函数
测试构造如同简单的将它的输出结果剪切并粘贴到文档字符串中;工具
经过用户提供的例子,它强化了文档,容许 doctest 模块确认代码的结果是否与文档一致;测试
1 def average(values): 2 """Computes the arithmetic mean of a list of numbers. 3 4 >>> print(average([20, 30, 70])) 5 40.0 6 """ 7 return sum(values) / len(values) 8 9 import doctest 10 doctest.testmod(verbose=True) # doctest.testmod是测试模块,verbose默认是False,意思是出错才用提示;True,对错都有执行结果
注意格式,上边代码的第三行须要是一个空行spa
注:Python中的除法老是返回一个浮点数code
1 Trying: 2 print(average([20, 30, 70])) 3 Expecting: 4 40.0 5 ok 6 Trying: 7 print(average([90, 40, 20])) 8 Expecting: 9 50.0 10 ok 11 1 items had no tests: 12 __main__ 13 1 items passed all tests: 14 2 tests in __main__.average 15 2 tests in 2 items. 16 2 passed and 0 failed. 17 Test passed. 18 [Finished in 0.5s]
能够看到16行,两个测试都经过了blog