我有以下结构:
|-- dirBar
| |-- __init__.py
| |-- bar.py
|-- foo.py
`-- test.py
bar.py
def returnBar():
return 'Bar'
foo.py
from dirBar.bar import returnBar
def printFoo():
print returnBar()
test.py
from mock import Mock
from foo import printFoo
from dirBar import bar
bar.returnBar = Mock(return_value='Foo')
printFoo()
python test.py
的结果是Bar
。如何模拟
printBar
以使其返回Foo
,以便printFoo
将其打印出来?编辑:无需修改
test.py
的任何其他文件 最佳答案
我猜您将要模拟returnBar
函数,您想使用 patch
decorator:
from mock import patch
from foo import printFoo
@patch('foo.returnBar')
def test_printFoo(mockBar):
mockBar.return_value = 'Foo'
printFoo()
test_printFoo()
关于python - 如何模拟包模块中定义的功能?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8575713/