1 回答
TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊
您需要在導(dǎo)入的地方修補(bǔ)它。假設(shè)ModuleNamelives 所在的文件名為my_class.py. 為了正確地模擬它,你需要做@patch(path.to.my_class.py)。下面是一個(gè)簡短的例子來說明這一點(diǎn)。
# demo/my_class.py
from shutil import copyfile
class ModuleName:
@staticmethod
def method_being_tested(source, destination):
copyfile(source, destination)
# test_my_class.py
from unittest.mock import patch
from demo.my_class import ModuleName
@patch("demo.my_class.copyfile")
def test_my_module(mock_copy):
ModuleName.method_being_tested(1, 2)
mock_copy.assert_called_once()
運(yùn)行上面的成功并表明我們成功模擬了copyfile. 閱讀此處文檔中所示的修補(bǔ)位置可能會對您有所幫助。
添加回答
舉報(bào)
