一尘不染

如何在Flask中伪造request.POST和GET参数进行单元测试?

flask

我想伪造用于单元测试的请求参数。如何在Flask中实现这一目标?


阅读 385

收藏
2020-04-07

共1个答案

一尘不染

你可以使用以下内容:

self.app.post('/path-to-request', data=dict(var1='data1', var2='data2', ...))
self.app.get('/path-to-request', query_string=dict(arg1='data1', arg2='data2', ...))

Flask的当前开发版本还包括对测试JSON API的支持:

from flask import request, jsonify

@app.route('/jsonapi')
def auth():
    json_data = request.get_json()
    attribute = json_data['attr']
    return jsonify(resp=generate_response(attribute))

with app.test_client() as c:
    rv = c.post('/jsonapi', json={
        'attr': 'value', 'other': 'data'
    })
    json_data = rv.get_json()
    assert generate_response(email, json_data['resp'])
2020-04-07