文檔測試
對于Python這種腳本語言來說,有很多情況都可以在命令行里直接執行,所以可以通過編寫Python文件直接在命令行里看到測試的結果,就顯得很方便。對于這種情況,Python專門有一個doctest
模塊來幫助我們測試自己的代碼。
最主要的作用就是能夠把我們寫的代碼,以及我們預期的結果寫下文件的注釋里面,doctest類會自動幫我們提取出測試代碼,并比較測試結果和預期結果,如果不一致的話,會在命令行里面顯示錯誤,如果全部一致的話,命令行不會有出錯提示。下面是一個小例子。
# -*- coding: utf-8 -*-
# temp.py
def fact(n):
'''
>>> fact(0)
Traceback (most recent call last):
...
ValueError
>>> fact(1)
1
>>> fact(2)
2
>>> print(fact(4))
6
'''
if n < 1:
raise ValueError()
if n == 1:
return 1
return n * fact(n - 1)
if __name__ == '__main__':
import doctest
doctest.testmod()
print(fact(3))
代開命令行,將目錄轉到文件所在的目錄下面,輸入下面的命令:
>>>python temp.py
運行結果如下:
運行結果
而且if __name__ == '__main__':
保證了測試只會在命令行調用時才會起作用,在其他程序調用時是不會生效的。
又學到了一個挺有用的測試工具!!