CppUnit は、 エーリヒ・ガンマおよびケント・ベックによって開発された Java のテスト フレームワークである JUnit の C++ 移植版です。既存の CppUnit テストがある場合、C++test でテストを実行し、C++test の提供するより幅広いテスト機能の恩恵を受けることができます。
CppUnit テストは、これまでの演習で作成したテストと同じように C++test で実行できます。プロジェクトの中で C++test のテスト用のディレクトリと同じレベルか上位のレベルに別のディレクトリを作成して CppUnit テストを保存し、テストにアクセスするためのコンフィギュレーションを作成することを推奨します。
[Run CppUnit Tests (Project Scope)] テスト コンフィギュレーションを実行する
- [テスト コンフィギュレーション] ダイアログを開き、演習 5 で作成した [ユーザー定義] > [Run Unit Tests (Project Scope)] テスト コンフィギュレーションを複製します。
- [実行] > [全般] タブを開いて [テスト スイート ファイルの場所のパターン(*)] を次のように変更します。
${project_loc}/CppUnit/*
これは追加された CppUnit ディレクトリを指します。
- テスト コンフィギュレーションの名前を [Run CppUnit Tests (Project Scope)] に変更します。
- [適用] をクリックしてから [閉じる] をクリックします。
- テストを実行する前に、[品質タスク] ビューおよび [カバレッジ] ビューの内容を消去します。そうすると、CppUnit テストの実行の結果だけを参照することができます。結果を消去するには次の操作を行います。
- [品質タスク] ビューを開いて黒い二重のX 印をクリックし、タスク情報を消去します。
- [カバレッジ] ビューを開いて赤い二重のX 印をクリックし、カバレッジ情報を消去します。
- ATM プロジェクトまたはその他の CppUnit テストが作成されたスコープを選択し、[Run CppUnit Tests (Project Scope)] テスト コンフィギュレーションを実行します。C++test によって CppUnit テストが実行されます。テストは正常に実行されますが、アサーション エラーが 1 つレポートされるはずです。
- [品質タスク] ビューで [単体テストの問題の修正] > [アサーションの失敗] を展開します。
CppUnit テストはテスト呼び出しからゼロ以外の値が返ってくることを期待しています。 - Bank.cxx を開いて getAccount 関数に移動します。
コードは常に NULL を返していますが、コメントから判断すると、パスワードが正しい場合は userAccount を返す必要があります。 - 問題を修正するため、userAccount を返すようにコードを変更します。
- ATM > CppUnit > BankTestCase > testGetAccount を選択し、テストを再実行して修正を確認します。