无法从python中的Mock请求获取JSON数据

问题描述 投票:0回答:1

以下是我的单元测试代码,用于将HTTP请求模拟到本地存储的Google Cloud Function,该函数返回json响应

from unittest.mock import Mock
from cloud_functions import main
from Flask import jsonify

data = { ... }
headers = { ... }

req = Mock(get_json=Mock(return_value=data), args=data, headers=headers)
resp = main.my_function(req)

以下是我在尝试获取响应中的json数据时遇到的错误类型。

尝试1

json_data = resp.json()
value = json_data['some_key']

错误

TypeError:'dict'对象不可调用

尝试2

value = resp['some_key']

错误

TypeError:'Response'对象不可订阅

尝试3

json_data = jsonify(resp)
value = json_data['some_key']

错误

TypeError:Response类型的对象不是JSON可序列化的

python json unit-testing mocking python-unittest
1个回答
0
投票

通过使用此代码解决了它。

json_data = resp.json
value = json_data['some_key']

现在一切都按预期工作了。

© www.soinside.com 2019 - 2024. All rights reserved.