在单元测试中,我似乎无法修补正确的对象。我的问题类似于Python function not using the mocked object,但是即使遵循该线程,我也无法正确解决问题。
我要测试的功能。
from pydicom import dcmread
def function(filename):
ds = dcmread(filename)
# do stuff
return stuff
我的测试功能:
@mock.patch('pydicom.dcmread', return_value=some_data)
def test_function(self, mock_dcmread):
data = function(filename)
从function
调用test_function
时,将使用实际的dcmread
而不是模拟函数。我想我在这里修补了错误的位置。如果我将函数更改为import pydicom.dcmread
并在调用它时使用全名,则一切正常。但这在宏伟计划中并不理想。