python - 使用 pytest 修补/取消修补装饰器
问题描述
我正在尝试修补装饰器。我使用的测试框架是 pytest。我能够成功修补它。但是,补丁在整个测试过程中仍然存在,因此我无法测试装饰器本身。
这是一个示例代码
装饰器.py
def decorator(resolver):
def wrap(*args, **kwargs):
kwargs.setdefault("additional_value", <some_value>)
return resolver(*args, **kwargs)
return wrap
修补装饰器
patch('decorators.decorator', decorator_mock).start()
我也尝试过停止补丁。但这似乎也不起作用
@pytest.fixture
def patch_reset_database_alias(request):
decorator_patch.stop()
importlib.reload(decorators)
def reset_patch():
decorator_patch.start()
request.addfinalizer(reset_patch)
我不太确定这里缺少什么,以及如何使它工作。
谢谢
解决方案
推荐阅读
- sql - 根据条件提取记录
- ios - 如何通过相同的 WI-Fi 连接将 iOS 应用程序中的视频投射到 Android TV 上?
- ios - 使用 UICollectionViewCompositionalLayout 的垂直全屏分页
- php - 显示 3 张卡片后,如何在 php while 循环中创建换行符?
- r - 与我在 R 中的绘图相关的错误消息是什么?
- java - 在 JSON 响应中获取实体而不是其 ID
- javascript - 在 Chrome DevTools 中顺序注入和运行 jQuery
- node.js - 我的网站是否可以在其他网站上执行请求?
- regex - 如何在 Swift 中验证类似这样的字符串(例如:27˚)。值是随机的?
- github-pages - 如何在我无法再访问存储库时删除 github 页面 CNAME