Djangoでテスト駆動開発を学ぼう!~環境準備編~

こんにちは。

私は、現在派遣プログラマで、Web系を専門に活動しています。

私の職場では、サーバーサイド側をDjangoで開発しており、割と新しい技術を用いた開発業務に携われています。

本記事では、Djangoによるテスト駆動開発の方法について、書いていこうと思います。

テスト駆動開発

テスト駆動開発では、以下の手順を繰り返します。

  1. テストコードを書く
  2. テストを実行し、「エラーになること」を確認する
  3. テストがpassするように「必要最低限」のプロダクトコードを書く
  4. テストを実行し、「passすること」を確認する
  5. リファクタリングする

詳しくは、実際に実装しながら確認していきましょう。

作成するアプリについて

本記事では、TODOリストを作成します。

事前準備

Pythonは既にインストールされていることを前提に話を進めます。また、動作環境はMacです。また、ブラウザは、Chromeを使います。

仮想環境の作成

Seleniumの準備

仮想環境を構築できたら、次にSeleniumのChrome Driverをダウンロードします。

Seleniumについては、後ほど解説します。

注意点としては、SeleniumのDriverには、OS(Windows, Mac, Linux)ごとの専用Driverがあり、かつ、Chromeのバージョンに気をつけなければなりません。

例えば、私の環境では、Chrome Driverのバージョンは以下のようになっています。

このChromeに対応するDriverは、こちらです。

「chromedriver_mac64」をダウンロードします。

このDriverを先ほど作成したvenvフォルダのbin配下に格納します。

モジュールのインストール

先ほど作成した仮想環境上で、次のモジュールをインストールします。

pytestは、pythonテストを強力にサポートしてくれるユーティリティです。

pytest-djangoは、djangoアプリに対して上pytestが実行できるツールです。

以下のファイルをdjango-with-tdd配下に作成しましょう。

このファイルは、pytestの設定ファイルです。以下の内容を書き込んでください。

todosは、これから作るプロジェクトの名前です。

最初の機能テスト

機能テストでは、主にSeleniumを使ったブラウザテストを行います。Seleniumでは、本来なら人間が手動で実行しなければならないことを代わりに実行してくれる、便利なツールです。

以下のファイルをdjango-with-tdd配下に作成しましょう。

テストコードを記述します。

terminal上で、以下のコマンドを実行しましょう。一瞬だけブラウザが立ち上がり、テストが失敗するはずです。

localhost:8000は、これから作成するDjangoアプリケーションのURLです。アプリケーションは、この後作成します。

TODOプロジェクトの作成

TODOプロジェクトを作成しましょう。

このコマンドで、todosアプリが作成されたはずです。

以下のコマンドで、アプリケーションを立ち上げましょう。

ブラウザからlocalhost:8000にアクセスします。

この状態で、別のterminal上で、pytestを実行してみましょう。

今度は、以下のブラウザが立ち上がりっぱなしになるはずです。

テスト関数を作成していないのでテストは走りませんが、ひとまずこれでOKです。

まとめ

本記事では、テスト駆動開発の実行手順、環境構築、機能テストの触りの部分について解説しました。

次回も引き続き、TDDを通して、アプリケーション作りを進めて行きます。

次回

コメントを残す