Flask Academy · レッスン

ルートとJSONをアサートする

ステータスコードとレスポンス本文を確認します

レッスン 2/413 ステップ

「ルートとJSONをアサートする」はCoddyKit上の無料Flask Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはFlask Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Flask Academyコースには全4レッスンが含まれています。

アサーションの対象

適切なルートテストでは、正しいstatus codeと正しいレスポンスボディという2つを確認します。両方が一致すれば、エンドポイントが期待どおりに動作しているとわかります。

ステータスコードを確認する

レスポンスにはstatus_code属性があります。正常なページは200を返すため、これをアサートして、ルートがエラーなく読み込まれたことを確認します。

resp = client.get('/')
assert resp.status_code == 200

生のボディを読み取る

レスポンスボディ全体は、バイト列としてresp.dataに格納されています。HTMLページ内の単語を検索したい場合は、テキストにデコードします。

body = resp.data.decode()
assert 'Welcome' in body

テキストの存在をアサートする

ページに正しい内容が表示されることを確認するには、ボディに特定のフレーズが含まれているかを調べます。これには単純なin演算子が最適です。

assert b'Welcome' in resp.data

JSONレスポンスを解析する

APIルートではresp.get_json()を呼び出します。FlaskがボディをPythonのdictまたはlistに解析するため、実際の値をアサートできます。

data = resp.get_json()
assert data['name'] == 'Ada'

Dictのキーをアサートする

解析済みのdictを取得したら、個々のkeysと値を確認します。これにより、serializerが期待どおりのフィールドだけを返したことを検証できます。

data = resp.get_json()
assert data['id'] == 1
assert 'email' in data

Content Typeを確認する

JSONエンドポイントは、自分がJSONを返すことを示す必要があります。resp.content_typeにapplication/jsonが含まれることをアサートし、クライアントが正しく解析できるようにします。

assert 'application/json' in resp.content_type

404ルートをテストする

エラーパスもテストする必要があります。存在しないURLをリクエストし、ステータスが404になることをアサートして、アプリが適切にエラー処理することを確認します。

resp = client.get('/nope')
assert resp.status_code == 404

POSTエンドポイントをテストする

client.postとjson引数を使ってデータを送信します。次に、通常は201となる作成時のステータスコードと、返されたボディをアサートします。

resp = client.post('/items', json={'name': 'pen'})
assert resp.status_code == 201

JSONリストをアサートする

コレクションエンドポイントはリストを返します。リストを解析したら、そのlengthをアサートするか、インデックスで項目を調べてペイロードの形式を検証します。

items = resp.get_json()
assert len(items) == 3
assert items[0]['id'] == 1

テストごとに1つの動作を確認する

各テストは単一の動作に集中させます。小さく名前の付いたテストにすると、失敗箇所が明確になり、テストスイートも格段に読みやすくなります。

クイックチェック

テストでJSON APIルートにアクセスしました。そのボディを読み取るにはどうしますか?

まとめ:ルートとJSON

これでstatus codes、ページテキスト、解析済みJSONをアサートできるようになりました。これらの方法を使えば、どのルートの動作も自信を持って検証できます。✅

無料で開始

AI チューターと学ぶ Python — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
30
レッスン
120

よくある質問

「ルートとJSONをアサートする」レッスンは無料ですか?

はい。「ルートとJSONをアサートする」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Flask Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Flask Academyコースには全4レッスンが含まれています。

「ルートとJSONをアサートする」で何を学びますか?

ステータスコードとレスポンス本文を確認します ブラウザで直接実行するハンズオンコードでFlask Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Flask Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのFlask Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「ルートとJSONをアサートする」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このFlask Academyレッスンでコードを書いて実行できますか?

はい。すべてのFlask Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. テストクライアントとフィクスチャ
  2. ルートとJSONをアサートする
  3. テスト用データベースでテストを分離する
  4. 認証が必要なエンドポイントをテストする
← Flask Academyに戻る