在python中不是参数的方法中模拟对象

在python中不是参数的方法中模拟对象,python,mocking,python-unittest,Python,Mocking,Python Unittest,(我是python新手) 我在看: 我想知道我是否可以替换python方法中未作为参数传递的对象,假设我的方法如下: def mypymethod(param1) myresult = os.path.something return myresult 我希望测试mypymethod,但是我希望在本例中,当我从测试方法调用它时,os.path返回“yourmockresult” 反正我能做到? 谢谢 您应该使用Michael Foord的模块进行同样的操作 从文件中: >>

(我是python新手)

我在看:

我想知道我是否可以替换python方法中未作为参数传递的对象,假设我的方法如下:

def mypymethod(param1)
  myresult = os.path.something
  return myresult
我希望测试mypymethod,但是我希望在本例中,当我从测试方法调用它时,os.path返回“yourmockresult”

反正我能做到?
谢谢

您应该使用Michael Foord的模块进行同样的操作

从文件中:

>>> 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')

您应该使用Michael Foord的模块进行同样的操作

从文件中:

>>> 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')

所以你的意思是,在我的例子中,我可以做os.path.isdir=False,当我调用某个方法myMethod调用os.path.isdir时,os.path.isdir将返回我的模拟值?谢谢!!!我刚试过,它绝对令人惊奇!!!每个单元测试人员的梦想!!!,有没有任何框架可以在java中做同样的事情???所以在我的例子中,你的意思是我可以做os.path.isdir=False,当我调用某个方法myMethod调用os.path.isdir时,os.path.isdir将返回我的模拟值?谢谢!!!我刚试过,它绝对令人惊奇!!!每个单元测试人员的梦想!!!,有没有任何框架可以在java中做同样的事情????