Python中使用mock和pytest嘲笑装饰器

2024-10-03 09:07:49 发布

您现在位置:Python中文网/ 问答频道 /正文

如何用monkeypatch或pytest.mock?我通过做(回答this问题)来嘲笑它:

package.decorator = mytestdecorator

问题是它破坏了其他一些测试,而我实际上需要那个装饰师来工作。在


Tags: packagepytestdecoratorthismockmonkeypatch装饰师mytestdecorator
1条回答
网友
1楼 · 发布于 2024-10-03 09:07:49

您必须控制mocked decorator的整个生命周期,并将decorator恢复到原始状态。在

可以用几种不同的方法:

  • 上下文管理器,它生成模拟的装饰器,并通过__exit__还原它。在
  • 测试的setup和teardown函数,teardown必须还原修饰符。在
  • pytest带有终结器的fixture
  • pytestfixture带有yield表达式。在

就我个人而言,我喜欢^{},因为它使代码简洁,而且一旦你意识到fixture代码中yield语句之后的所有内容都是清理代码,事情很清楚。在

相关问题 更多 >