QtユニットテストツールQTestlib
3696 ワード
利点:QTestLibはユニットテストフレームワークの基本機能を提供し、GUIテストに対する拡張機能を提供する.
とくせい
詳細な説明
軽量級
QTestlibには6000行のコードと60個のエクスポート記号しか含まれていません.
自己包含
非GUIテストの場合、QTestlibはQtコアライブラリのいくつかのシンボルしか必要ありません.
クイックテスト
QTestlibは特別なテスト実行プログラムを必要とせず、テストのために特別な登録を行う必要はありません.
データ駆動テスト
1つのテストプログラムは、異なるテストデータセット上で複数回実行できます.
基本的なGUIテスト
QTestlibはマウスとキーボードイベントをシミュレートする機能を提供しています.
IDEフレンドリー
QTestlibの出力情報は、Visual StudioおよびKdevelopによって解析することができる.
スレッドのセキュリティ
エラーレポートはスレッドが安全で原子的です.
タイプセキュリティ
テンプレートを拡張して使用し、暗黙的なタイプ変換によるエラーを防止します.
拡張性
ユーザーカスタムタイプは、テストデータとテスト出力に簡単に追加できます.
使用前提:1,継承QObject 2,プライベートスロット(各スロット関数はテスト関数であり,QTest::qExec()によって自動的に呼び出される)
使用する関連マクロ:
初期化テストデータには一般的にテスト関数があります.data()による初期化データ
そしてテスト関数(スロット)で使用
ps:その他のプラットフォームツール:http://blog.csdn.net/libing403/article/details/72909348
とくせい
詳細な説明
軽量級
QTestlibには6000行のコードと60個のエクスポート記号しか含まれていません.
自己包含
非GUIテストの場合、QTestlibはQtコアライブラリのいくつかのシンボルしか必要ありません.
クイックテスト
QTestlibは特別なテスト実行プログラムを必要とせず、テストのために特別な登録を行う必要はありません.
データ駆動テスト
1つのテストプログラムは、異なるテストデータセット上で複数回実行できます.
基本的なGUIテスト
QTestlibはマウスとキーボードイベントをシミュレートする機能を提供しています.
IDEフレンドリー
QTestlibの出力情報は、Visual StudioおよびKdevelopによって解析することができる.
スレッドのセキュリティ
エラーレポートはスレッドが安全で原子的です.
タイプセキュリティ
テンプレートを拡張して使用し、暗黙的なタイプ変換によるエラーを防止します.
拡張性
ユーザーカスタムタイプは、テストデータとテスト出力に簡単に追加できます.
使用前提:1,継承QObject 2,プライベートスロット(各スロット関数はテスト関数であり,QTest::qExec()によって自動的に呼び出される)
使用する関連マクロ:
QVERIFY(condition)
//condition , , ,
QVERIFY2(statement, description)
//statement , description
initTestCase()
//
cleanupTestCase()
//
init()
//
cleanup()
//
初期化テストデータには一般的にテスト関数があります.data()による初期化データ
> void QTest::addColumn(const char *name, T *dummy = 0)
> QTestData &QTest::newRow(const char *dataTag)
//
QTest::addColumn<QString>("aString");
QTest::addColumn<int>("expected");
//
QTest::newRow("positive value") << "42" << 42;
QTest::newRow("negative value") << "-42" << -42;
QTest::newRow("zero") << "0" << 0;
そしてテスト関数(スロット)で使用
//
> QFETCH(type, name)
QFETCH(QString, aString);
QFETCH(int, expected);
//
> QCOMPARE(actual, expected);
//actual, expected ,
ps:その他のプラットフォームツール:http://blog.csdn.net/libing403/article/details/72909348