【发布时间】:2021-12-20 09:24:08
【问题描述】:
我有以下Python==3.8 代码,其中我:
- 使用
unittest.mock.patch作为装饰器 - 执行
patch(..., new=...):
from unittest.mock import patch
class Foo:
pass
class Bar:
pass
@patch(__name__ + f".Foo", new=Bar)
def test_foo(patched_Bar) -> None:
_ = 0 # Do stuff
目前,这不会运行,因为没有提供 patched_Bar 参数。我怎样才能让patched_Bar arg 被传入?
我知道存在以下解决方法,使用 with,但我不想这样做,因为我认为它不太干净。
def test_foo2() -> None:
with patch(__name__ + f".Foo", new=Bar) as patched_Bar:
_ = 0 # Do stuff
【问题讨论】:
标签: python monkeypatching python-unittest.mock