use*_*592 3 python json unit-testing flask
我有两个Python脚本:让我们称之为program.py和program_utils.py.
program.py看起来像这样:
from flask import Flask, request, jsonify
import program_utils
app = Flask(__name__)
@app.route('/mypage')
def my_func():
# Do some stuff here and get a URL parameter
my_var = request.args.get('my_var')
# Get JSON object from another function in program_utils
return program_utils.get_json_object(my_var)
Run Code Online (Sandbox Code Playgroud)
program_utils.py中的get_json_object()如下所示:
def get_json_object(my_var):
# Do some calls to other methods to create the JSON object using my_var
return json_object
Run Code Online (Sandbox Code Playgroud)
我的问题是如何在program_utils中为get_json_object创建单元测试,以确保它以正确的格式返回对象?我已经尝试编写一个常规单元测试(将方法视为返回一个字符串),但是出现了一个运行时错误,说"在应用程序上下文之外工作".
您使用测试客户端来测试Flask视图.创建它,app.test_client()然后使用它来模拟对您的路线的请求.响应仅包含原始数据,如果要将其作为JSON进行比较,则需要加载它.
c = app.test_client()
rv = c.get('/mypage', query_string={'my_var': 'my_value'})
assert json.loads(rv.get_data()) == expected_data
Run Code Online (Sandbox Code Playgroud)
该瓶文档有一整个章节专门介绍这个.该WERKZEUG文档进入更详细.
| 归档时间: |
|
| 查看次数: |
2100 次 |
| 最近记录: |