■Windows で eclipse ~CUTEインストール編~
早速、CUTEを使ってみる。
CUTEのヘルプを参照しながら、プロジェクトを作成する。
CUTEをインストール後、下記操作でCUTEのヘルプが表示される。
[メニュー] > [ヘルプ] > [ようこそ] > [Cute C++ Unit Testing Easier] をクリック。
1.CUTEプロジェクトの作成
先ずは、プロジェクトを作成してみる。
- 画面右上の「パースペクティブを開く」アイコンをクリックし、「パースペクティブを開く」ダイヤログを表示。
- 「パースペクティブを開く」ダイヤログから「C/C++」をクリック。
- [ファイル] > [新規] > [C++プロジェクト] を選択
- [プロジェクトタイプ] > [CUTE Project] を選択
- [ツールチェイン] > [MinGW GCC] を選択
- [プロジェクト名] > [CUTE_TEST] 入力
- [次へ] をクリック
- [完了] をクリック。
- プロジェクトが作成される。
- [CUTE_TEST]右クリック > [プロパティ] > [C/C++ビルド] > [設定] > [GCC C++ Compiler] > [インクルード]を選択
- [インクルードパス] に [Boost]のパスを追加する
- [OK]をクリック
2.ビルド&実行
- [Ctrl+B] を押下。
- コンソールに、ビルド結果が表示される。
- [Ctrl+F11] を押下。
- コンソールに実行結果が表示される。
- 「CUTE Test Result」を参照すると、実行結果が表示される。
この結果は、「thisIsATest」でテストが失敗したことを意味している。
3.プログラムの修正
という訳で、プログラムを修正し、テストを成功させてみる。
先ずは、「Test.cpp」を読むことから始める。
このプログラムは、下記の順に実行される。
01: #include "cute.h"
02: #include "ide_listener.h"
03: #include "cute_runner.h"
04: void thisIsATest() {
05: ASSERTM("start writing tests", false); // ★ エラー発生箇所
06: }
07: void runSuite(){
08: cute::suite s;
09: //TODO add your test here
10: s.push_back(CUTE(thisIsATest));
11: cute::ide_listener lis;
12: cute::makeRunner(lis)(s, "The Suite");
13:}
14:int main(){
15: runSuite();
16: return 0;
17:}
(1) 14: int main( )
(2) 07: void runSuite( )
(3) 04: void thisIsATest( )
で、エラーが発生しているのは、[thisIsATest( )]の、05行目 [ASSERTM("start writing tests", false);]。
ちなみに、[CUTE Test Results]の [thisIsATest( )]をダブルクリックすると、エラー発生箇所が表示される。
この [ASSERTM( )] は、実行結果が正しいかチェックするためのマクロである。
- ASSERTM( msg, cond )
- msg : テスト失敗時に表示されるメッセージ
- cond : テストの実行結果 trueの場合テスト成功、falseの場合テスト失敗
<<書式>>
で、cond に false が書かれているため、必ずテストが失敗する。
テストを成功させるためには、5行目を下記の通り修正する。
▼修正前 : ASSERTM("start writing tests", false);
▼修正後 : ASSERTM("start writing tests", true);
- 5行目を修正する
- [Ctrl+B]でビルドする
- [Ctrl+F11]で実行する
実行結果が成功し、グリーンバーが表示される。
4.テストケースの追加(関数編)
テストケースは、「関数型」と「クラス型」の2種類があるが、先ずは「関数型」から紹介する。
- [newTest( )] 関数を追加する。
- [runTest( )] 関数に、 [s.push_back(CUTE(newTest))] を追加する。
- ビルド( [Ctrl+B] )、 実行 ([Ctrl+F11] ) を実行する。
5.テストケースの追加(クラス編)
続いて、「クラス型」の紹介。
クラス型の場合、CUTEはデフォルトでメンバ関数 「void operator() ()」 をコールする仕様との事。
- [class testCaseClass] を追加する(下記参照)。
- [runTest( )] 関数に、 [s.push_back(testCaseClass());] を追加する。
- ビルド( [Ctrl+B] )、 実行 ([Ctrl+F11] ) を実行する。
class testCaseClass{
public:
void operator() () {
ASSERTM("testCaseClass", true);
}
};
もう1つ。
デフォルトの [void operator() ()] 以外の関数を実行したい場合、 [cute::suite] に登録する際、 [CUTE_SMEMFUN] を指定する。
- [class testCaseClass2] を追加する(下記参照)。
- [runTest( )] 関数に、 [s.push_back(CUTE_SMEMFUN(testCaseClass,testFunc));] を追加する。
- ビルド( [Ctrl+B] )、 実行 ([Ctrl+F11] ) を実行する。
class testCaseClass{
public:
void testFunc() { ASSERTM("testCaseClass", true);
}
};
以上で、一通りCUTEの使用方法の説明になる。
次回、実践的な活用方法を記述する。
0 件のコメント:
コメントを投稿