如何测试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
Run Code Online (Sandbox Code Playgroud)
从Flask 1.0开始,response.get_json()将响应数据解析为JSON或引发错误.
response = c.get("/")
assert response.get_json()["message"] == "hello world"
Run Code Online (Sandbox Code Playgroud)
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'
Run Code Online (Sandbox Code Playgroud)
通常情况下,这个测试本身没有意义.你知道它是JSON,因为jsonify返回没有错误,并且jsonify已经由Flask测试.如果它不是有效的JSON,则在序列化数据时会收到错误.
| 归档时间: |
|
| 查看次数: |
2182 次 |
| 最近记录: |