假设我有这种情况:
module2.py
class Bar:
def bar():
a = 5
# do stuff
Messages.show("Done")
module1.py
import module2
class Foo:
def __init__(self):
self.bar = module2.Bar()
def foo(self):
self.bar.bar()
我想测试方法Foo.foo(),但我想忽略Messages.show(“Done”),即我希望调用Messages.show函数在模拟对象上完成。如果foo正在调用Messages.show直接,我可以在foo上使用monkeypatch来模拟Messages类。但是现在,我从另一个模块调用一个类,我不知道如何指定不应该完成Messages.show调用(原因)因为他们访问Gui并且在测试环境中不起作用。)假设我无法修改module2.py。
答案 0 :(得分:2)
只需覆盖module2
认为Messages
的内容:
import module2
module2.Messages = ...