你如何測試 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。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP