![](/img/trans.png)
[英]Python unit testing code which calls OS/Module level python functions
[英]Python Unit testing script that calls some functions
我最終在 python 中測試了一個“自動化”腳本,基本上只是一個調用一堆函數的腳本。
我有 3 個類:class_A、class_B、class_C,每個 class 都有一個“運行”function
Script.py 正在調用 class_A.run()、class_B.run、class_C.run()
我的問題是,是否有一種對 Script.py 進行單元測試的方法來斷言我們是否調用了 3 個運行函數,而不實際運行(通過他們的代碼)它們。
我嘗試修補 class 並且我可以獲得正確的斷言,但運行函數仍在“運行”它們的代碼。
是否有可能以某種方式模擬 class_A.run() 並斷言是否被調用?
你可以使用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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.