You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

单元测试中如何配置MagicMock使模拟Flask Request的get_json返回自定义JSON

问题

单元测试场景下需要用MagicMock模拟Flask框架的Request对象,初始代码如下:

m = mock.MagicMock()
m.mock_add_spec(spec=Request, spec_set=True)
# 待补充配置:让后续m.get_json()调用可返回预设测试JSON数据

核心诉求:正确配置该MagicMock实例,使其调用get_json()方法时返回预先设置的测试用JSON数据。

解决方案

自定义继承自MagicMock的模拟类,重写get_json方法直接返回预设JSON测试数据即可,实现代码:

from typing import Any
from unittest import mock

class iMock(mock.MagicMock):
    def __init__(self, *args: Any, **kw: Any):
        super().__init__(*args, **kw)

    def get_json(self):
        return {"node_id": 0}

实例化该自定义类后,按原有逻辑添加Request规格约束即可正常使用,get_json()调用会返回预设测试数据,不会触发spec_set规则报错。


内容的提问来源于stack exchange,提问作者Eric Böwer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 16:06:23