你如何測試 Python 函式是否丟擲異常?


我們編寫一個僅在某個函式未丟擲預期異常時失敗的單元測試。

我們也測試 Python 函式是否丟擲異常。

例如,檢視我們將貼上到 Python 外殼程式中的示例程式碼,以測試 Python 的型別安全

示例

import unittest
class MyTestCase(unittest.TestCase):
   def test_1_cannot_add_int_and_str(self):
      with self.assertRaises(TypeError):
         1 + '1'
      def test_2_cannot_add_int_and_str(self):
      import operator
      self.assertRaises(TypeError, operator.add, 1, '1')
 unittest.main(exit=False)

執行測試

輸出

並且終端會輸出如下內容 −

..

----------------------------------------------------------------------

Ran 2 tests in 0.001s

OK

第一個測試將 assertRaises 用作上下文管理器,該管理器確保正確捕獲並清理錯誤,同時將其記錄下來。

我們還可以不用上下文管理器來編寫它,參見第二個測試。第一個引數將是你期望丟擲的錯誤型別,第二個引數將是你正在測試的函式,並且剩餘的 args 和關鍵字 args 將被傳遞給該函式。

直接使用上下文管理器更加簡單、可讀。

我們看到正如我們所期望的那樣,嘗試將 1 和 '1' 相加會導致 TypeError。

更新於:12-6-2020

285 次瀏覽

開啟你的職業生涯

透過完成課程獲取認證

開始
廣告
© . All rights reserved.