如何测试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开始
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,则在序列化数据时会收到错误.