💻

Gemini Code Assist応用例 Python + SQLite:④単体テスト

に公開

💻 GCA応用例:④単体テスト

1. 単体テストの基本原則を理解する 🎓

単体テストを行う上で、最も重要な原則を確認します。

🚨 原則:単体テストは「スタブベース」でロジックを通す

開発における単体テストのベストプラクティスとして、テスト中にデータベースを直接操作したり、外部リソースを覗いたりすることは避けるべきです。

  • 目的: 単体テストの目的は、関数単体のロジックが正しいかを検証することです。データベースの入出力は、ロジックの中で間接的に検証されます(例: タスクを追加したらリストの数が1増えるか)。
  • スタブベース: 本来は、DBアクセスのような外部依存部分を**スタブ(またはモック)**に置き換え、テストを高速かつ独立して行うべきです。

💡 デモ記事としての特例: 今回は、GCAが生成したテストコードの品質と、DB操作が意図通りに機能しているかという応用的な検証を兼ねるため、テストの前後でDBを直接確認するステップを組み込みます。

2. テスト生成の依頼

  • 指示: 実装したCRUD操作の全関数を対象にテストコードを生成させ、test_todo.pyに書き込ませます。

    【プロンプト】

    @todo.py の add_task, list_tasks, complete_task, delete_task の全関数を対象に、単体テストを生成し、@test_todo.py に書き出してください。
    

3. テスト実行の指示

  • 指示: 生成されたテストをチャット内で実行するためのコマンドをAIに生成させます。

    【プロンプト】

    test_todo.py を実行するためのコマンドを教えてください。
    
  • ユーザーによる実行: GCAが提示したコマンドをコピーし、ターミナルで実行します。

  • GCAはセキュリティ上の制約により、コマンドを実行することができません。

  • 実行後、テストが**「OK」**となることを確認します。


関連記事
Gemini Code Assist応用例 Python + SQLite:①ファイル構成の作成
Gemini Code Assist応用例 Python + SQLite:②データベース作成
Gemini Code Assist応用例 Python + SQLite:③メインロジックの実装
Gemini Code Assist応用例 Python + SQLite:④単体テスト
Gemini Code Assist応用例 Python + SQLite:⑤ドキュメントと仕上げ
Gemini Code Assist応用例 Python + SQLite:⑥実行と最終動作確認
Gemini Code Assist応用例 Python + SQLite:⑦注意事項

Discussion