簡體   English   中英

Python 調用部分函數的單元測試腳本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM