『テスト駆動開発』という書籍は、絶版となっていましたが、再び翻訳され、出版された本です。
階段の写真が載っている本です。
この本のサンプルは、JUnitを使うことを前提に、Javaで書かれています。
しかし、そもそもテスト駆動自体は言語特有の話ではないため、当然、他の言語でも実践できます。
そこで、このブログでもよく話題に出している、Pythonでやってみます。
日本や世界のどこかで、同じことをやっている人はいると思いますが、自身の勉強のためです。
なお、作ったものはGitHubに上げています。まだ途中です。
読み進めながら作成しています。
完成したものはいずれお見せする*1として、今回は環境周りについて書きます。
ツール等
当ブログおなじみの、Visual Studio Code
を使います。
また、Pythonのテストフレームワークとして、標準*2のunittest
を使います。
その他、利用するもののバージョン等は以下の通りです。
ツール等 | バージョン | 補足 |
---|---|---|
OS | Windows 10 64bit | Fall Creators Update適用済み |
Python | 3.6.3 | |
pylint | 1.7.2 | |
Python(VSCode拡張機能) | 0.8.0 | |
Visual Studio Code | 1.18.1 | |
PowerShell | 5.1.16299.64 | |
Git | 2.15.0 |
フォルダ構成
色々調べましたが、上のように
ルート
∟テスト対象ソース
∟tests
とすると良いそうです。
unittestについて
unittest
ですが、Pythonの標準テストフレームワークであることは、先ほど述べたとおりです。
JUnit
に触発されて作成した*3そうなので、メソッド名等はほぼ一緒です。
ただ、使う場合はコマンドラインから*4実行する、という特徴があります。
テスト対象メソッドの識別
JUnit
の場合、@test
等のアノテーションを付与して、テストメソッドの識別を行います。
Pythonでは、先頭にtest
とついているメソッドを、テスト対象とするそうです。
命名規則と組み合わせると、test_
となります。
テスト実行
PowerShell等で、プロジェクトのルートに移動し、以下のコマンドを入力します。
python -m unittest tests/moneytest.py
私はVisual Studio Codeの統合ターミナルを使っています。
ウィンドウ一つで作業できるので、楽です。
GitHubへのアップロード
GitHubを見ていただければわかりますが、章ごとにアップロードしています。
これを、開発フォルダだけで行うのは無理なので、別途Gitクライアント用のフォルダを用意し、完成物のみコピーして、アップロードしています。
今後
年内に、全章やりきる予定です。
現時点*5では、Javaとの違いで苦しむことはさほど無く、順調です。
動かし方や、細かい補足等は、また別の記事で。
今回は、やり始めたよ、という報告です。