【问题标题】:Mocking functions with FlexMock in Python?在 Python 中使用 FlexMock 模拟函数?
【发布时间】:2011-07-12 12:57:47
【问题描述】:

我知道如何使用 flexmock 在 Python 中模拟方法,例如

 flexmock(subprocess).should_receive('call').replace_with(my_func)

如何模拟对象之外的功能,或者例如 glob,它是通过 from glob import glob 而不是 import glob 导入的?

我发现mocking functions using python mock 是一个类似的问题,但它没有回答我的问题。

【问题讨论】:

    标签: python mocking


    【解决方案1】:

    由于您将 glob() 函数直接导入本地命名空间,因此您必须获取当前模块的句柄。

    from flexmock import flexmock
    from glob import glob
    import sys
    
    flexmock(sys.modules[__name__]).should_receive('glob')
    

    您还可以执行“将 glob 作为 glob_module 导入”或类似的操作来避免 sys.modules 查找。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多