カテゴリ: Python 更新日: 2026/02/25

Pythonの例外処理と単体テストをやさしく理解する!初心者でも安心な書き方ガイド

Pythonの例外処理と単体テストの書き方を組み合わせる方法
Pythonの例外処理と単体テストの書き方を組み合わせる方法

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

生徒

「Pythonでエラーが起きたときの動きを、テストで確認できるって聞いたんですが、本当ですか?」

先生

「できますよ。例外処理と単体テストを組み合わせると、エラーが正しく起きるかも確認できます。」

生徒

「パソコンを触ったことがなくても理解できますか?」

先生

「大丈夫です。例え話を交えながら、ゆっくり説明していきましょう。」

1. 単体テストとは何かを知ろう

1. 単体テストとは何かを知ろう
1. 単体テストとは何かを知ろう

単体テストとは、プログラムの一部分だけを取り出して、 正しく動くかを確認する仕組みです。 家電製品を出荷する前に、一つずつ動作確認をする作業に似ています。 Pythonでは、標準で用意されている仕組みを使って、 自動的にチェックを行うことができます。 初心者のうちは「間違いが起きないかを確かめる作業」と覚えると分かりやすいです。

2. 例外処理と単体テストの関係

2. 例外処理と単体テストの関係
2. 例外処理と単体テストの関係

例外処理は、エラーが起きたときにプログラムが止まらないようにするための仕組みです。 一方、単体テストは「正しいとき」と「エラーのとき」の両方を確認します。 つまり、例外が正しく発生するかどうかも、 テストでチェックする対象になります。 この二つを組み合わせることで、安心して動くプログラムが作れます。

3. 例外が起きる関数を用意してみよう

3. 例外が起きる関数を用意してみよう
3. 例外が起きる関数を用意してみよう

まずは、わざと例外が起きる可能性のある関数を用意します。 ここでは、文字を数字に変換する簡単な例を使います。 数字にできない場合は、例外が発生します。


def to_number(text):
    return int(text)

4. 正常な動きをテストで確認する

4. 正常な動きをテストで確認する
4. 正常な動きをテストで確認する

次に、正しい入力をした場合のテストを書きます。 単体テストでは「期待した結果」と「実際の結果」を比べます。 同じであれば、問題なく動いていると判断できます。


import unittest

class TestToNumber(unittest.TestCase):
    def test_success(self):
        self.assertEqual(to_number("10"), 10)

5. 例外が発生するかをテストする方法

5. 例外が発生するかをテストする方法
5. 例外が発生するかをテストする方法

単体テストでは、例外が起きること自体を確認できます。 これは「失敗することを期待するテスト」です。 危険な操作をしたときに、きちんとエラーになるかを調べるイメージです。 Pythonでは、例外が発生することを指定してテストできます。


class TestToNumber(unittest.TestCase):
    def test_error(self):
        with self.assertRaises(ValueError):
            to_number("abc")

6. tryとexceptを使った処理のテスト

6. tryとexceptを使った処理のテスト
6. tryとexceptを使った処理のテスト

関数の中で例外処理を行う場合でも、テストは可能です。 エラーが起きたときに、どんな結果になるかを確認します。 これは、失敗したときの動作を保証するために重要です。


def safe_to_number(text):
    try:
        return int(text)
    except ValueError:
        return 0

class TestSafeToNumber(unittest.TestCase):
    def test_error_value(self):
        self.assertEqual(safe_to_number("abc"), 0)

7. 初心者が混乱しやすいポイント

7. 初心者が混乱しやすいポイント
7. 初心者が混乱しやすいポイント

初心者の方は「エラーが出るのは悪いこと」と思いがちです。 しかし、単体テストではエラーが出ることを確認する場合もあります。 例外処理とテストは、プログラムを守るための道具です。 正しくエラーになることも、成功の一つだと考えると理解しやすくなります。

8. 例外処理と単体テストを組み合わせる考え方

8. 例外処理と単体テストを組み合わせる考え方
8. 例外処理と単体テストを組み合わせる考え方

例外処理は実行中の安全を守り、単体テストは事前の確認を行います。 この二つを組み合わせることで、トラブルに強いPythonプログラムになります。 難しく感じるかもしれませんが、 「正しい動き」と「間違ったときの動き」を確認するだけです。 この考え方を身につけると、安心してコードが書けるようになります。

カテゴリの一覧へ
新着記事
New1
Flask
Flaskで非同期フォーム送信(Ajax POST)を実装する方法を解説!初心者でもわかるステップ解説
New2
Python
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説
New3
Python
PythonでMySQLに接続する方法!pymysqlの基本的な使い方
New4
Flask
FlaskのURLルールとは?ルーティングの基本と動的URLの作り方を解説
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.2
Java&Spring記事人気No2
Flask
Flaskでデータベースを使う基本!SQLAlchemyの導入方法をやさしく解説
No.3
Java&Spring記事人気No3
Python
Pythonでリストの要素を検索・取得する方法!index()やin演算子の活用法
No.4
Java&Spring記事人気No4
Python
Pythonプログラムの書き方を基礎から学ぼう!初心者が覚えるべき文法とは?
No.5
Java&Spring記事人気No5
Python
Pythonのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.6
Java&Spring記事人気No6
Flask
Flaskアプリの環境変数をクラウドで安全に設定する方法!初心者のための完全ガイド
No.7
Java&Spring記事人気No7
Python
Pythonで仮想環境(venv)を作る方法!初心者向けに環境構築をステップ解説
No.8
Java&Spring記事人気No8
Flask
Flaskでクラウド上のメッセージキュー(SQS/PubSub)を扱う完全ガイド!初心者向け解説