测试 Flask 响应是否为 JSON

2023-12-27

如何测试 Flask 视图生成的响应是否为 JSON?

from flask import jsonify

@app.route('/')
def index():
    return jsonify(message='hello world')

c = app.app.test_client()
assert c.get('/').status_code == 200
# assert is json

从 Flask 1.0 开始,response.get_json()会将响应数据解析为 JSON 或引发错误。

response = c.get("/")
assert response.get_json()["message"] == "hello world"

jsonify将内容类型设置为application/json。此外,您可以尝试将响应数据解析为 JSON。如果解析失败,你的测试就会失败。

from flask import json
assert response.content_type == 'application/json'
data = json.loads(response.get_data(as_text=True))
assert data['message'] == 'hello world'

通常,该测试本身没有意义。你知道它是 JSON 因为jsonify无错误地返回,并且jsonify已经通过 Flask 测试。如果它不是有效的 JSON,您将在序列化数据时收到错误。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

测试 Flask 响应是否为 JSON 的相关文章

随机推荐