python - 如何创建可下标的 Mock 对象?

标签 python unit-testing mocking python-unittest python-mock

假设,我有一个代码片段

foo = SomeClass()
bar = foo[1:999].execute()
为了测试这一点,我尝试了一些
foo_mock = Mock()
foo_mock[1:999].execute()
不幸的是,这引发了一个异常(exception),

TypeError: 'Mock' object is not subscriptable


那么,我如何创建一个可下标的 Mock 目的?

最佳答案

只需使用 MagicMock 反而。

>>> 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__ .

关于python - 如何创建可下标的 Mock 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64176468/

相关文章:

c# - C#自动创建对象母类

unit-testing - tensorflow 测试中的 eager 和 graph 执行

python - 检查提供给另一个可调用参数的参数

python ,网络

python - 如何从客户端知道请求者连接是否关闭/断开,Python Pyramid

python - 合并文件权限

python - PySpark:分组数据聚合中的自定义函数

python - django 测试中的模拟时间问题 : time seems not to be frozen using freezegun

java - 在测试中模拟 Autowiring 的对象

.net - 使用 Moq 模拟 CAL EventAggregator