如何在Python中的单元测试的每个实例中重写一个函数



我有一个函数Foo,已经在Bar和Python包中的其他地方使用过了。对于单元测试,我需要将该函数替换为fake_Foofake_Foo应该覆盖以前的每个实例。如何做到这一点?

我试过Foo = fake_Fooglobal 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()

最新更新