Files
EA_with_Python/python_for_ea/.github/instructions/pytest.instructions.md
T

1.2 KiB

applyTo
applyTo
tests/**/*.py

Pytest Instructions

Basic Rules

  • pytest を使用する。
  • AAA パターンで書く。
  • 1テスト1責務にする。
  • 1テスト1Actにする。
  • テスト名は test_<対象>_<条件>_<期待結果> にする。

Arrange / Act / Assert

  • Arrange: 前提データ、fixture、mockを準備する。
  • Act: 対象処理を1回だけ実行する。
  • Assert: 結果を検証する。

Fixtures

  • fixture は前提条件の名前にする。
  • fixture には assert を書かない。
  • fixture にテストロジックを書かない。
  • Arrange が長くなる場合は fixture 化する。

Parametrize

  • 分岐、境界値、異常系は pytest.mark.parametrize を優先する。
  • テスト内で if/else を増やしすぎない。

Exception Test

  • 例外テストでは pytest.raises(..., match=...) を使用する。
  • 例外の型だけでなく、必要に応じてメッセージも検証する。

Mock / Integration

  • Unit TestではDB、ファイルI/O、現在時刻、外部APIをmockする。
  • Integration Testには @pytest.mark.integration を付ける。
  • 通常実行では以下を使用する。
uv run pytest -m "not integration"