Python測試模塊doctest

面試被問到了卻沒有用過,很尷尬;今天看了一下,真的是一個很簡單的測試模塊

 

方便起見,這裏直接拿菜鳥教程的介紹和例子過來

 

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

 

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

相關文章
相關標籤/搜索