pytestの戻り値は基本バイナリ型で返ってきて、尚且つ日本語だと文字化けのため、日本語が含まれるjsonレスポンスの単体テストに苦戦していました。
結論
dict型で定義した想定のレスポンスと、json.loadsで処理したレスポンスを比較する
具体的な手順
- そもそも日本語が文字化けする部分を解消
## app.pyapp.config["JSON_AS_ASCII"] = False - テストコード側でdict型のjsonを用意
res_assunmption = { "hoge": "huga"} - 戻り値をjson.loadsの関数を挟んで比較
assert res_assunmption == json.loads(result.data)
※アプリケーション側で、requestのretern時にjsonifyを利用していること
コメント