python - 为什么有专门的patch.dict

标签 python pytest

我发现 python 内部处理的字典对象与函数和列表等其他对象不同。

有谁知道为什么python模拟库(1.0.1)除了现有的patch和patch.object之外专门有一个patch.dict?

最佳答案

patch.dict()用于在范围内设置字典中的值并在测试结束时将字典恢复到其原始状态:

foo = {'key': 'value'}
original = foo.copy()

with patch.dict(foo, {'newkey': 'newvalue'}, clear=True):
    assert foo == {'newkey': 'newvalue'}

assert foo == original

reference了解更多信息。

关于python - 为什么有专门的patch.dict,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25065039/

相关文章:

python - 在 pytest 中执行teardown_method后测试失败

pytest - 使用 pytest 动态控制测试顺序

python - 如何将额外的参数传递给我的 py.test 设置方法?

python - 如何使用 PropertyMock 在 pytest 单元测试中返回请求响应属性?

python - 在函数内部包含 For 循环以处理元组列表

python - 无法在模拟方法上设置 side_effect

python - 如何在Python中将三维列表拆分为二维列表

python - 使用 Python 删除多余的空行

python - Django:根据其他字段更新字段值

python - 如何将 "raw"字符串转换为普通字符串?