カテゴリ: Flask 更新日: 2025/12/10

FlaskのAPI開発でテストを始めよう!初心者でもわかるpytestを使った基本テスト例

FlaskのAPI開発でテストを始めよう!pytestを使った基本テスト例
FlaskのAPI開発でテストを始めよう!pytestを使った基本テスト例

先生と生徒の会話形式で理解しよう

生徒

「先生、FlaskでAPIを作ったんですが、ちゃんと動いてるかどうか確認するにはどうすればいいですか?」

先生

「Flaskで作ったAPIが正しく動くかをチェックするには、テストという作業が大事です。Pythonではpytest(パイテスト)という便利なツールを使うのが一般的ですよ。」

生徒

「テストって難しそうですが、プログラミング初心者でもできますか?」

先生

「もちろんです!今日はFlaskのAPIを対象に、初心者でもすぐに使えるpytestの基本的な使い方をわかりやすく解説しますね。」

1. テストとは?なぜ必要なの?

1. テストとは?なぜ必要なの?
1. テストとは?なぜ必要なの?

テストとは、作ったプログラムがちゃんと正しく動くかどうかを確認する作業のことです。例えば、電卓アプリを作ったときに「2 + 3 = 5」になるかどうかを確認するのがテストです。

FlaskのようにWeb APIを作ると、人間の目では確認できない動作もあるため、自動でチェックできる仕組みがあるととても便利です。

そこで登場するのが、Pythonのテストツールであるpytest(パイテスト)です。

2. pytestとは?初心者でも安心の自動テストツール

2. pytestとは?初心者でも安心の自動テストツール
2. pytestとは?初心者でも安心の自動テストツール

pytestは、Pythonで書かれたプログラムをテストするためのツールです。誰でも簡単に始められて、初心者にもやさしい文法になっています。

Flaskで作ったAPIの動作を確認したり、正しくない入力に対してエラーが返ってくるかなどをチェックできます。

インストールは以下のように行います。


pip install pytest

3. テスト対象となるFlaskの簡単なAPIを作ろう

3. テスト対象となるFlaskの簡単なAPIを作ろう
3. テスト対象となるFlaskの簡単なAPIを作ろう

まずはテストする対象のFlaskアプリを作ってみましょう。以下は「こんにちは」と返すだけのシンプルなAPIです。


# ファイル名: app.py

from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/hello')
def hello():
    return jsonify({"message": "こんにちは!"})

4. pytestを使ってAPIをテストしてみよう

4. pytestを使ってAPIをテストしてみよう
4. pytestを使ってAPIをテストしてみよう

次に、このAPIがちゃんと「こんにちは!」を返しているかどうかを確認するテストを書いてみましょう。test_app.pyという名前でファイルを作成します。


# ファイル名: test_app.py

from app import app

def test_hello():
    client = app.test_client()
    response = client.get('/hello')
    json_data = response.get_json()

    assert response.status_code == 200
    assert json_data['message'] == 'こんにちは!'

ここで使っているassert(アサート)は、「これが正しければOK、間違ってたらNG」という意味です。

5. テストを実行する方法

5. テストを実行する方法
5. テストを実行する方法

ターミナル(黒い画面)で次のコマンドを入力するだけで、テストが自動で実行されます。


pytest

成功すると、次のような出力が表示されます。


================= test session starts =================
collected 1 item

test_app.py .                                          [100%]

================== 1 passed in 0.02s ==================

1 passedと出ればOKです!

6. テストが失敗した場合はどうなる?

6. テストが失敗した場合はどうなる?
6. テストが失敗した場合はどうなる?

もし期待通りの結果でなければ、pytestがエラーとして教えてくれます。

たとえば、期待した文字列と違った場合はこのように出ます。


>       assert json_data['message'] == 'こんにちはー!'
E       AssertionError: assert 'こんにちは!' == 'こんにちはー!'

このように、どこが違うかを細かく教えてくれるので、初心者でもすぐに問題を発見できます。

7. よく使うpytestの便利ポイント

7. よく使うpytestの便利ポイント
7. よく使うpytestの便利ポイント
  • テストの自動化が簡単
  • 1つの関数で1つの確認ができる
  • Flaskのtest_client()でAPIにアクセスできる
  • 失敗したときのエラーメッセージがわかりやすい

特にFlaskでAPIを作った場合、test_client()という仕組みを使うと、ブラウザを開かなくてもAPIをテストできます。

8. Python初心者にとってのテストのメリット

8. Python初心者にとってのテストのメリット
8. Python初心者にとってのテストのメリット

テストを最初の段階から取り入れておくと、次のような良いことがあります:

  • 後からコードを変更しても安心して動作確認ができる
  • 間違ったコードをすぐに発見できる
  • 自分の書いたコードに自信が持てる

最初は難しそうに感じても、実際にやってみると「ただの確認作業」なので、ぜひチャレンジしてみましょう!

まとめ

まとめ
まとめ

FlaskでAPIを開発するとき、動作が正しいかどうかを確かめるためのテストは欠かせない要素になります。特に、Python初心者にとっては「テスト」という言葉だけでハードルを感じてしまう場面もありますが、実際にpytestを使ってみると、その手軽さと便利さに驚くことが多いはずです。今回の記事では、FlaskのAPI開発の基本とpytestによるテストの流れを通して、プログラムの正しさを確認する方法を一から丁寧に学びました。APIを使う場面では、目に見えない処理が多いため、自分の書いたコードが期待通りの値を返しているか、自動で確認できる仕組みを持っておくことは非常に重要です。とくに、何度も実行する必要がある確認作業をpytestが代わりに進めてくれるため、より安心してAPIを開発できるようになります。

Flaskにはtest_client()という便利な機能が用意されており、APIに直接アクセスして結果を取得することができます。この仕組みを使うことで、ブラウザを開いたり外部ツールを使ったりせずに、コードの正しさを確かめることが可能になります。pytestと組み合わせると、APIが返すステータスコードやJSONの内容を細かくテストできるため、思わぬバグを早い段階で見つけることができます。今回取り上げた基本的なテストコードも、初心者がすぐに応用できるものばかりで、短いコードで大きな安心を得られることが実感できるはずです。

テストを書くメリットは、ただ正誤を確認するだけではありません。APIの仕様を自分で整理することにもつながり、開発の方向性がより明確になります。また、コードを後から変更するときにも、テストがあることで思わぬ影響が出ていないか確認できるため、安心して作業を進められます。特にFlaskのようにシンプルで柔軟なフレームワークでは、機能を追加しやすい反面、確認作業が疎かになりがちですが、pytestと組み合わせることで開発の品質を高く保つことができます。

さらに、pytestの魅力として、エラーメッセージがわかりやすいことが挙げられます。どの部分が間違っているのか、期待している値は何だったのかを丁寧に示してくれるため、初心者でもすぐに修正の方向性をつかむことができます。これは学習の効率を大きく高める要素で、慣れれば慣れるほど手放せない存在になるでしょう。FlaskのAPI開発では、小さな機能の積み重ねが大きなアプリケーションにつながりますが、pytestを活用することで、その土台を強固にしていくことができます。

また、今回の例では単純な「こんにちは!」を返すAPIを扱いましたが、このテスト手法はデータベース連携や外部サービスとの通信を含む複雑な機能にも応用できます。APIの振る舞いを正しく保つことは、ユーザーに安心してサービスを利用してもらうためにも大切なポイントです。pytestを使ったテストの書き方を身につけておけば、今後さらに高度なAPIを開発するときにも、落ち着いて確認作業を行えるようになります。こうした積み重ねが、開発者としての成長にもつながり、自信をもってコードに向き合う力を育ててくれます。

サンプルコードでおさらい

ここで、今回学んだポイントを踏まえた復習用のサンプルコードを紹介します。


# ファイル名: app_sample.py

from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/greet/<name>')
def greet(name):
    message = f"{name}さん、こんにちは!"
    return jsonify({"message": message})

# ファイル名: test_app_sample.py

from app_sample import app

def test_greet():
    client = app.test_client()
    response = client.get('/greet/結衣')
    json_data = response.get_json()

    assert response.status_code == 200
    assert json_data['message'] == '結衣さん、こんにちは!'

このように、URLの一部を変数として扱うAPIのテストも簡単に書くことができます。pytestを使えば、引数が変わっても正しく動作しているかすぐに確認できるため、複数のパターンを効率よくチェックできます。

先生と生徒の振り返り会話

生徒

「先生、pytestの使い方が前よりずっとわかりやすく感じました!」

先生

「実際に手を動かすと、テストがどれだけ頼りになるか実感できますよね。」

生徒

「テストって最初は面倒なイメージでしたが、書いてみるとむしろ安心感がありますね。」

先生

「その通りです。特にAPIは見えない部分が多いので、pytestが力を発揮しますよ。」

生徒

「これなら自分でももっと複雑なAPIのテストに挑戦できそうです!」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

FlaskでAPIを作ったあと、正しく動作しているか確認するにはどうすればいいですか?

Flaskで作成したAPIが正しく動作しているか確認するには、Pythonの自動テストツールであるpytestを使うのが一般的です。手動で確認するのではなく、自動でチェックすることで効率よくエラーを見つけることができます。
カテゴリの一覧へ
新着記事
New1
Flask
Flaskアプリの作り方を基礎から学ぼう!初心者が覚えるべき開発の流れとは?
New2
Flask
Flask-WTFでファイルアップロードフォームを完全ガイド!初心者でもわかる画像やPDFのアップロード方法
New3
Flask
FlaskでCSRF対策を実装する方法!安全なフォーム送信を学ぼう
New4
Python
Pythonの文字列型(str)を完全解説!連結・分割・検索の方法を紹介
人気記事
No.1
Java&Spring記事人気No1
Django
Django環境構築の全手順を完全解説!初心者でも迷わないPython・Djangoセットアップガイド
No.2
Java&Spring記事人気No2
Flask
Flask-Loginでユーザー認証を完全ガイド!初心者でもわかるログイン処理の作り方
No.3
Java&Spring記事人気No3
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.4
Java&Spring記事人気No4
Python
PythonでHello Worldを表示するには?初心者向けに最初の1行を実行してみよう
No.5
Java&Spring記事人気No5
Python
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説
No.6
Java&Spring記事人気No6
Python
Pythonでリストを文字列に変換する方法を完全ガイド!初心者でもわかるjoinの使い方
No.7
Java&Spring記事人気No7
Python
Pythonのmatch文(パターンマッチング)とは?switch文の代替としての使い方をやさしく解説
No.8
Java&Spring記事人気No8
Flask
FlaskアプリをNginx + Gunicornで本番運用する方法!初心者でもわかるデプロイ構成の基本