開發高質量軟件的方法之一是爲每個函數開發測試代碼,而且在開發過程當中常常進行測試;面試
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