unittest模拟不嘲笑

时间:2016-09-26 21:43:24

标签: python unit-testing mocking patch

刚拿起python

def test_load( self ):
    with patch( 'base.data.load.loadEngine.libLoad.extractDBData', autospec=True, return_value=None):
    #libLoad.extractDBData = MagicMock( return_value=[ {'x':'value1'} ] )
        self.assertEqual(
            load(loadName='MyLoadName', configName='PROD', sqlName='sampleSQL', loginName='loginName', password='password'),
            [{'x': 'value'}] )

在我的代码中,加载调用另一个模块base.data.load.loadEngine.libLoad.extractDBData,我想要替换的方法。在我的情况下,补丁没有发生。

1 个答案:

答案 0 :(得分:1)

您需要修补方法的相对路径:

with patch('path.to.your.pythonfile.fl.extractDBData', autospec=True, return_value=None): ...