我想測驗我的代碼的例外部分。
def main():
try:
logger.info("Ejecución planificada proceso Mae_CIL")
a = ObjectA()
a.method()
logger.info("Success")
except Exception as e:
logger.error("Error: %s" % e)
@mock.patch.object(ObjectA, 'method')
def test_main(self, mock_method):
# Case 1: Success
mock_method.return_value = None
main()
self.assertEqual(1, 1)
# Case 2: Test Exception
mock_method.return_value = Exception
self.assertRaises(Exception, main)
案例 1 測驗主要方法。案例 2 測驗例外,但測驗失敗并顯示此訊息'Exception: Exception not raised by main_Mae_UPR'
我如何測驗例外部分?
uj5u.com熱心網友回復:
如您所見,僅設定return_value為例外不會導致引發該例外。這是因為例外不是回傳——它是一個完全不同的執行背景關系,幾乎按照定義意味著你的函式不會回傳。也可以撰寫一個回傳例外物件(或您的示例中的類)的函式。
你想要Mock.side_effect。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/449487.html
標籤:Python 单元测试 python-unittest.mock
