Mocking decorators in python with mock and pytest
如何使用monkeypatch或pytest.mock修补我的自定义装饰器? 我设法嘲笑它(回答这个问题):
问题是它打破了其他一些我真正需要装饰器工作的测试。
您必须控制模拟装饰器的完整生命周期并将装饰器恢复到原始状态。
它可以通过几种不同的方式完成:
-
构建模拟装饰器的上下文管理器,并通过
__exit__ 将其还原。 -
测试的设置和拆卸功能,
teardown 必须还原装饰器。 -
带有终结器的
pytest 夹具 -
具有
yield 表达式的pytest fixture。
我个人喜欢