gpt4 book ai didi

python - 如何对返回 JSON 对象的方法进行单元测试?

转载 作者:太空宇宙 更新时间:2023-11-03 14:11:10 27 4
gpt4 key购买 nike

我有两个 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)

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

我的问题是如何在 program_utils 中为 get_json_object 创建单元测试以确保它以正确的格式返回对象?我曾尝试编写常规单元测试(将方法视为返回字符串),但出现运行时错误“在应用程序上下文之外工作”。

最佳答案

您使用测试客户端来测试 Flask View 。使用 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

Flask docs有一整节专门介绍这个。 Werkzeug docs进入更多细节。

关于python - 如何对返回 JSON 对象的方法进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37861935/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com