【Flask】pytestの戻り値のjsonに日本語が含まれる場合のテスト方法【Python】

pytestの戻り値は基本バイナリ型で返ってきて、尚且つ日本語だと文字化けのため、日本語が含まれるjsonレスポンスの単体テストに苦戦していました。

結論

dict型で定義した想定のレスポンスと、json.loadsで処理したレスポンスを比較する

具体的な手順

  1. そもそも日本語が文字化けする部分を解消
    ## app.py
    app.config["JSON_AS_ASCII"] = False
  2. テストコード側でdict型のjsonを用意
    res_assunmption = { "hoge": "huga"}
  3. 戻り値をjson.loadsの関数を挟んで比較
    assert res_assunmption == json.loads(result.data)

※アプリケーション側で、requestのretern時にjsonifyを利用していること

参考サイト

コメント

タイトルとURLをコピーしました