C# テスト駆動開発の実践方法:テスト駆動開発の始め方 #7

当連載ではテスト駆動開発を実践するために必要な基礎知識や実践方法を解説しています。これまでにテスト駆動開発をするために必要な前提知識は解説してきましたので、まだ完全に理解出来ていない人は「」から過去の記事を確認していきましょう。

さて、今回からは実践編ということで、数回にわたって簡単なアプリケーションを構築しながらテスト駆動開発をやっていきたいと思っています。テスト駆動開発のサイクルは「C# テスト駆動開発の実践方法」で解説していますので確認しておくと良いでしょう。

テスト駆動開発で作るもの

さて、ここではテスト駆動開発の実践編ということでスタートしていきます。今回は以下のようなアプリケーションを数回にわたって作っていきたいと思います。

簡単な口座アプリを作成します。コンソールアプリケーションから入金と出金ができ、最終的な口座の収支はテキストファイルとして出力しておき、前回の残金から再スタートできるようにする。

このようなアプリケーションを簡単に作りながら、テスト駆動開発の実践をしていく予定です。GUI部分は作りません。テスト駆動開発ではGUIをテストするのは難しく、ソースコードをユニットテストの対象とするので問題ないでしょう。

アプリケーションの準備をする

ではまずはコンソールアプリケーションを作成して、テストプロジェクトを作成していきます。アプリケーション名を「App03」としてください。

いつも通りデフォルトテンプレートのアプリケーションの準備ができたら、いったんは大丈夫です。次はテストプロジェクトを追加していきます。テスト用のプロジェクトの名前は「BankAccountTest」としておきましょう。

ソリューションエクスプローラーには2つのプロジェクトである「App03」と「BankAccountTest」のプロジェクトがあることを確認したら、BankAccountTestプロジェクトにApp03の参照を追加しておきます。

テスト駆動開発を始める前に

さて、テスト駆動開発を始める前に今回作るアプリケーションの必要な内容を固めておきましょう。作りたいアプリケーションは以下のような感じでした。

簡単な口座アプリを作成します。コンソールアプリケーションから入金と出金ができ、最終的な口座の収支はテキストファイルとして出力しておき、前回の残金から再スタートできるようにする。

ここから考えると以下の機能が必要になると想定できますね。

  • 画面からお金の入金と出金ができること
  • テキストファイルが出力できること
  • テキストファイルが読み込めること

お金の入金と出金ができるというのは、そういうメソッドが存在していることと言い換えることが可能になります。またテキストファイルの読み込み処理も必要でした。

ここでは口座をオブジェクト指向で作っていきたいと思います。また円のオブジェクトは完全コンストラクタパターンを使用して実装していくことを考えます。「完全コンストラクタパターン」については「C# オブジェクト指向の基礎」の連載の「C# オブジェクト指向の基礎:コンストラクタを活用する方法 #7」にて少し触れているので確認してみてください。

実装は次回から

ここまではアプリケーションの下準備と簡単な機能の分析を行っておきました。テスト駆動開発はコードを実装しながら、テストをしつつ、より洗練されたコードへと昇華していくサイクルです。

次回はこのアプリケーションでもっとも根底になる「お金」をどう扱うかについてテスト駆動開発を行いながら考えていきたいと思います。次回以降からはしっかりとソースコードを書いていきます。