概要
FlaskのAPIテストをするのに「POST MAN」を使用していましたが、今更Flaskでの単体テスト方法を学んだんで備忘録。
例
テスト用のコードは「test.py」として別に分けています。「app.py」に簡単なルーティング設定をしています。
app.py
from flask import Flask, jsonify, request
app = Flask(__name__)
@app.route("/")
def home():
if request.is_json: # jsonのデータ指定
return jsonify({"msg": "fault massage"}), 400
return jsonify({"msg": "success message"}), 200
if __name__ == "__main__":
app.run()
今回はget通信としていますが、これはgetのところをpost等にすればその他通信が可能です。
test.py
import json
from app import app # app.py をインポート
with app.test_client() as c:
res = c.get("/", data=json.dumps({
"test" : "test"
}
),
headers={
"Content-Type" : "application/json"
}
)
print(res.get_data())