python - 如何创建一个可下标的 Mock 对象?
问题描述
假设,我有一个代码片段
foo = SomeClass()
bar = foo[1:999].execute()
为了测试这一点,我尝试了一些方法
foo_mock = Mock()
foo_mock[1:999].execute()
不幸的是,这引发了一个异常,
TypeError:“模拟”对象不可下标
那么,我怎样才能创建一个可下标的 Mock
对象呢?
解决方案
只需使用 aMagicMock
代替。
>>> from unittest.mock import Mock, MagicMock
>>> Mock()[1:999]
TypeError: 'Mock' object is not subscriptable
>>> MagicMock()[1:999]
<MagicMock name='mock.__getitem__()' id='140737078563504'>
它之所以被称为“魔法”,是因为它支持__magic__
诸如__getitem__
.
推荐阅读
- java - Android:在补偿俯仰/倾斜变化时计算正确的方位角(设备不平坦)
- git - 如何将 Github 修复到 Azure DevOps Sync?
- python - 使用 For _ in range()
- python - 按值而不是按引用定义匿名函数
- javascript - 如何将 CSS 框架与 LitElement 一起使用
- python - 为什么 user.is_superuser 在 Django 模板中返回字符串?
- python - 不会自动使用 python 解释器进行 lintering(Python 扩展)
- python-3.x - 即使迭代器被操作,嵌套的 for 循环也会重置迭代器
- corda - 如何隐藏 node.conf 中的敏感数据?
- typescript - 为具有许多字段的对象使用 JSON.parse 时分配类型