目的

Pythonのテストコードの実装を学習するリポジトリを作成しました。 詳細はREADMEに記載していますが、以下に概要を記載します。

リポジトリ: https://github.com/hikaruy0804/learn_python_testcode

手順

  1. 仕様を読む src/bank/ のコードと README セクション5をざっと確認し、入出金や残高、異常系ルールなどの要件を確認

  2. テストを書く(unittest 版) tests/ ディレクトリに、まずは unittest でテストを実装

  3. 例)正常系:deposit / withdraw / balance

  4. 例)異常系:負の入金、型違い、残高不足(オーバードラフト)など

  5. テストを書く(pytest 版) 同じテストを pytest 流に書き直し、fixturesparametrize、シンプルな assert などの利点を理解

セットアップ手順

Pythonの高速パッケージインストーラ uv を使います。インストールは公式手順に従ってください(例:pipx install uv など)。

# リポジトリのクローン
git clone https://github.com/hikaruy0804/learn_python_testcode.git
cd learn_python_testcode

# 仮想環境の作成(プロジェクトルートに .venv ができます)
uv venv

# 依存パッケージのインストール(pytest など)
uv sync

unittestpytest を両方やる理由

  • unittest(標準)

  • 組み込みでどこでも使える

  • クラスベース、メソッドごとのライフサイクルがわかりやすい
  • pytest(サードパーティ)

  • assert がそのまま使え、失敗時の出力が読みやすい

  • @pytest.mark.parametrize でテストケースの網羅が簡単
  • fixture で前処理・後処理を柔軟に再利用できる

同じ内容のテストを書くことで、テスト設計と、フレームワークの利便性を体感します。

リポジトリhttps://github.com/hikaruy0804/learn_python_testcode