Stub python 时间方法与 mockito (when)
Stub python time method with mockito (when)
在代码中,我使用了 python 方法 time()
:
from time import time
# Some code
t=time()
# Some more code
main.py
在我的测试中,我想用 mockito 存根时间方法,return 总是相同的值:
import time
#...
when(time).time().thenReturn(2)
#...
test.py
但是,这不起作用,除非我更改在 main 中调用时间方法的方式:
import time
t=time.time()
main_2.py
我想避免更改主要代码,或者至少了解为什么需要进行更改才能使存根正常工作。
您在模拟错误的模块。您的代码在其 own 命名空间中使用名称 time
,而不是 time
模块中的名称,尽管两者都引用相同的函数。
如果 test.py
使用 import main
导入 main.py
,则使用
when(main).time().thenReturn(2)
在代码中,我使用了 python 方法 time()
:
from time import time
# Some code
t=time()
# Some more code
main.py
在我的测试中,我想用 mockito 存根时间方法,return 总是相同的值:
import time
#...
when(time).time().thenReturn(2)
#...
test.py
但是,这不起作用,除非我更改在 main 中调用时间方法的方式:
import time
t=time.time()
main_2.py
我想避免更改主要代码,或者至少了解为什么需要进行更改才能使存根正常工作。
您在模拟错误的模块。您的代码在其 own 命名空间中使用名称 time
,而不是 time
模块中的名称,尽管两者都引用相同的函数。
如果 test.py
使用 import main
导入 main.py
,则使用
when(main).time().thenReturn(2)