在Python中模拟一个不是参数的对象

1 投票
1 回答
578 浏览
提问于 2025-04-16 21:58

(我还是个Python新手)

我在看这个链接:模拟对象和方法

我在想,能不能在一个Python方法里替换一个没有作为参数传入的对象。比如我的方法是这样的:

def mypymethod(param1)
  myresult = os.path.something
  return myresult

我想测试我的方法,但是我希望在这个情况下,os.path调用时返回“yourmockresult”,这样我在测试方法里调用它的时候就能得到这个结果。

有没有办法做到这一点?谢谢!!

1 个回答

1

你应该使用Michael Foord的Mock模块来实现这个功能。

根据文档的说明:

>>> from mock import Mock
>>> real = ProductionClass()
>>> real.method = Mock(return_value=3)
>>> real.method(3, 4, 5, key='value')
3
>>> real.method.assert_called_with(3, 4, 5, key='value')

撰写回答