函数时未使用模拟对象

时间:2018-12-07 15:05:50

标签: python-3.x unit-testing mocking

在单元测试中,我似乎无法修补正确的对象。我的问题类似于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并在调用它时使用全名,则一切正常。但这在宏伟计划中并不理想。

0 个答案:

没有答案