テストクライアントとフィクスチャ
テスト用にアプリとクライアントを起動します
「テストクライアントとフィクスチャ」はCoddyKit上の無料Flask Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはFlask Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Flask Academyコースには全4レッスンが含まれています。
Flaskアプリをテストする理由
テストがあれば、恐れずにコードを変更できます。pytestを使えば、アプリを手作業で操作しなくても、すべてのルートが数秒で動作することを確認できます。🧪
テストクライアントを知る
Flaskにはtest clientという偽のブラウザーが用意されています。実際のサーバーやネットワークを使わず、メモリ上でルートを呼び出します。
client = app.test_client()
resp = client.get('/')アプリからクライアントを取得する
app.test_client()を呼び出してクライアントを作成します。返されるオブジェクトには、getやpostなど実際のHTTPメソッドに対応するメソッドがあります。
from app import app
client = app.test_client()リクエストを送り、レスポンスを取得する
client.get('/')を呼び出すと、レスポンスオブジェクトが返されます。すべてがPython内部ですぐに実行されますが、実際のレスポンスと同じように調べられます。
resp = client.get('/')
print(resp.status_code)フィクスチャとは
fixtureは、テストの前にpytestが実行する再利用可能なセットアップコードです。クライアントを各所で作り直す代わりに、一度定義して再利用できます。
クライアントフィクスチャを書く
関数に@pytest.fixtureを付け、テストクライアントをyieldします。引数としてその名前を指定したテストには、新しいクライアントが渡されます。
@pytest.fixture
def client():
yield app.test_client()名前でフィクスチャを要求する
フィクスチャを使うには、その名前をtest argumentとして追加するだけです。Pytestが一致を検出し、自動的に値を注入します。
def test_home(client):
resp = client.get('/')
assert resp.status_code == 200フィクスチャでのyieldとreturn
yieldを使うと、テスト終了後にクリーンアップを実行できます。yieldより前のコードがセットアップ、後のコードが後片付けになります。
@pytest.fixture
def client():
yield app.test_client()
print('cleanup here')フィクスチャの配置場所
共有フィクスチャはconftest.pyという名前のファイルに置きます。Pytestが自動的に見つけるため、インポートなしですべてのテストファイルから使用できます。
テストファイルの命名
Pytestはtest_で始まるファイルと、同じパターンで命名された関数を検出します。この規則に従えば、1つのコマンドでテストを実行できます。
# file: test_routes.py
def test_home(client):
...すべてのテストを実行する
プロジェクトのルートから、ターミナルでpytestを実行するだけです。すべてのテストファイルを収集して実行し、成功または失敗の概要を表示します。
$ pytest
2 passed in 0.04sクイックチェック
再利用可能なテストクライアントが必要です。どうすればよいでしょうか。
まとめ:クライアントとフィクスチャ
メモリ上のtest clientについて学び、conftest.pyのfixtureで共有する方法を習得しました。これで、すべてのテストが準備済みのclientから開始されます。🎉
AI チューターと学ぶ Python — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 30
- レッスン
- 120
よくある質問
「テストクライアントとフィクスチャ」レッスンは無料ですか?
はい。「テストクライアントとフィクスチャ」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Flask Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Flask Academyコースには全4レッスンが含まれています。
「テストクライアントとフィクスチャ」で何を学びますか?
テスト用にアプリとクライアントを起動します ブラウザで直接実行するハンズオンコードでFlask Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Flask Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのFlask Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「テストクライアントとフィクスチャ」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このFlask Academyレッスンでコードを書いて実行できますか?
はい。すべてのFlask Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- テストクライアントとフィクスチャ
- ルートとJSONをアサートする
- テスト用データベースでテストを分離する
- 認証が必要なエンドポイントをテストする