目的
Pythonのテストコードの実装を学習するリポジトリを作成しました。 詳細はREADMEに記載していますが、以下に概要を記載します。
リポジトリ: https://github.com/hikaruy0804/learn_python_testcode
手順
-
仕様を読む
src/bank/
のコードと README セクション5をざっと確認し、入出金や残高、異常系ルールなどの要件を確認 -
テストを書く(
unittest
版)tests/
ディレクトリに、まずはunittest
でテストを実装 -
例)正常系:
deposit
/withdraw
/balance
-
例)異常系:負の入金、型違い、残高不足(オーバードラフト)など
-
テストを書く(
pytest
版) 同じテストをpytest
流に書き直し、fixtures
やparametrize
、シンプルな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
unittest
と pytest
を両方やる理由
-
unittest
(標準) -
組み込みでどこでも使える
- クラスベース、メソッドごとのライフサイクルがわかりやすい
-
pytest
(サードパーティ) -
assert
がそのまま使え、失敗時の出力が読みやすい @pytest.mark.parametrize
でテストケースの網羅が簡単fixture
で前処理・後処理を柔軟に再利用できる
同じ内容のテストを書くことで、テスト設計と、フレームワークの利便性を体感します。