Tôi đã có một cấu trúc sau:Làm thế nào để giả lập một hàm được định nghĩa trong một mô đun của một gói?
|-- 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()
kết quả của python test.py
là Bar
.
Làm thế nào để giả lập printBar
để làm cho nó trở về Foo
để printFoo
sẽ in?
EDIT: Nếu không sửa đổi bất kỳ tập tin khác mà test.py
Có vấn đề là - Tôi đã có mã như vậy và không muốn thay đổi chúng. Sau khi thảo luận về freenode # python tôi đã quyết định tái cấu trúc tệp khác (ở đây foo.py) để nó sẽ tốt hơn và sạch hơn – zalun
@zalun có liên kết đến cuộc thảo luận này không? Tôi tò mò về điều đó! – brandizzi
không có ý tưởng - Tôi chỉ thấy rằng tôi không đăng nhập bất cứ điều gì ... – zalun