在Python中如何使用FlexMock模拟函数?

7 投票
1 回答
3224 浏览
提问于 2025-04-16 21:20

我知道怎么用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。

撰写回答