无法获取JSON数据以响应python中的Mock请求

时间:2019-04-25 17:59:34

标签: python json unit-testing mocking python-unittest

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

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:“响应”对象不可下标

尝试3

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

错误

  

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

1 个答案:

答案 0 :(得分:0)

使用此代码解决。

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

现在一切正常。