在Python中如何使用FlexMock模拟函数?
我知道怎么用flexmock在Python中模拟方法,比如说:
flexmock(subprocess).should_receive('call').replace_with(my_func)
那么,如何模拟那些不在对象里的函数呢?比如说glob
,它是通过from glob import glob
这种方式导入的,而不是import glob
?
我找到过一个类似的问题,链接是使用python mock模拟函数,但是它没有回答我的问题。
1 个回答
8
因为你直接把glob()这个函数引入到本地命名空间,所以你需要了解当前模块的情况。
from flexmock import flexmock
from glob import glob
import sys
flexmock(sys.modules[__name__]).should_receive('glob')
你也可以用“import glob as glob_module”这样的方式来避免查找sys.modules。