我最終在 python 中測驗了一個“自動化”腳本,基本上只是一個呼叫一堆函式的腳本。
我有 3 個類:class_A、class_B、class_C,每個類都有一個“運行”功能
Script.py 正在呼叫 class_A.run()、class_B.run、class_C.run()
我的問題是,是否有一種對 Script.py 進行單元測驗的方法來斷言我們是否呼叫了 3 個運行函式,而不實際運行(通過他們的代碼)它們。
我嘗試修補類,我可以獲得正確的斷言,但運行函式仍在“運行”它們的代碼。
是否有可能以某種方式模擬 class_A.run() 并斷言是否被呼叫?
uj5u.com熱心網友回復:
你可以使用Mock patch。MockClass 將替換您的 module.class_A 和運行方法:
from unittest.mock import patch
@patch('module.class_A', 'run')
def test(MockClass):
Script.py # your testfunction
assert MockClass.run.called # check if module.Class_A.run() was called
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/407856.html
標籤:
