python json解析 超过对象_将magicmock传入时超出了最大递归深度jsonpickle.encode()

单元测试将对象列表传递到方法中。

该方法使用jsonpickle.encode在物体上。在

很好,但是当单元测试发送模拟对象列表并运行到无限递归时该怎么办?在

下面是一个代码示例:import jsonpickle

from mock.mock import MagicMock

class Foo(object):

def __init__(self):

pass

def encodeFoos(list_of_foos):

[jsonpickle.encode(x) for x in list_of_foos]

def works():

list_of_foos = [Foo()]

encodeFoos(list_of_foos=list_of_foos)

def unit_test_doesnt_work():

list_of_mock_foos = [MagicMock()]

encodeFoos(list_of_mock_foos)

unit_test_doesnt_work()

引发的错误是:

RuntimeError:超过最大递归深度

因为jsonpickle显然沿着mocked对象中的一棵无限树向下移动。在

如何保持产品代码的原样(encodeFoos),并且在传入模拟对象时不会遇到最大递归?在

谢谢!在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值