简体   繁体   中英

Unit Tests for FLASK API

I have a basic flask API running:

u/app.route('/helloworld', methods = ['GET'])
def first_api():
    hname = "hello"
    lhname = "world"
    print(hname+lhanme)

Now I need to add some unit tests to it, and here is my unit test file:

import json
def test_index(app, client):
    res = client.get('/helloworld')
    assert res.status_code == 200
    assert "hello" in res.data

How can I pass value for variables hname and lhname from this unit test?

Here is my conf file for pytest :

import pytest
from app import app as flask_app
u/pytest.fixture
def app():
    return flask_app

u/pytest.fixture

def client(app):
    return app.test_client()

You have a little mistake in your endpoint. You want it to return the string instead of printing it. Please consider the following example:

from flask import Flask, request

flask_app = Flask(__name__)
app = flask_app

@app.route('/helloworld', methods = ['GET'])
def first_api():
    hname = request.args.get("hname")
    lhname = request.args.get("lname")
    print(hname)
    return hname + lhname



def test_index(app):
    client = app.test_client()
    hname = "hello"
    lname = "world"
    res = client.get('/helloworld?hname={}&lname={}'.format(hname, lname))
    assert res.status_code == 200
    assert "hello" in res.data.decode("UTF-8")

if __name__ == "__main__":
    test_index(app)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM