在Python中模拟一个不是参数的对象
(我还是个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')