【发布时间】:2020-10-27 08:52:26
【问题描述】:
我的问题与以下代码sn-ps有关。在第一个中,我使用“from ... import ...”样式导入 time.sleep:
from time import sleep
class Tests( unittest.TestCase ):
def test_sleep( self ):
with patch( "time.sleep" ) as sleepMock:
sleep( 0.01 )
sleepMock.assert_called_with( 0.01 )
对于第二个,我使用“import ...”样式:
import time
class Tests( unittest.TestCase ):
def test_sleep( self ):
with patch( "time.sleep" ) as sleepMock:
time.sleep( 0.01 )
sleepMock.assert_called_with( 0.01 )
第二个按预期运行良好。但第一个不是修补 time.sleep。为什么第一个不起作用,尽管我正在导入相同的功能?成功模拟'time.sleep' 的第一个示例中的补丁语句会是什么样子?
甚至更好:有没有办法修补这个模块,与我如何在生产代码中导入 time.sleep 函数无关?
【问题讨论】:
-
您正在使用模块命名空间中的
sleep。您还必须在模块级别上进行路径:patch( "sleep" )。总是路径是你使用的东西,而不是它来自哪里。 -
@KlausD。我不完全明白你的意思。你能分享一些示例代码吗?
-
评论中有示例代码!
标签: python python-unittest python-mock