我有一个函数Foo
,已经在Bar
和Python包中的其他地方使用过了。对于单元测试,我需要将该函数替换为fake_Foo
。fake_Foo
应该覆盖以前的每个实例。如何做到这一点?
我试过Foo = fake_Foo
和global Foo
,但都不起作用。
TL;DR:我正试图用fake_command
函数覆盖这里的_command
函数,用于之前的每个实例。
我用
from _pytest.monkeypatch import MonkeyPatch
def fake_Foo(monkeypatch=MonkeyPatch()):
def fake__Foo(args):
...
monkeypatch.setattr("module.Foo", fake__Foo)
只需在需要覆盖时调用fake_Foo()
。