日本語EnglishOFF-SOFT.netOFF-SOFT.netウェブやソフトウェアに関するサポート&情報サイトです。サイト構築からソフトウェアの作成、利用まであなたの助けになるかも・・・・しれません。コメントはまだありません。無効となっていませんか?このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない、検索ができないことがあります。:Qtでは、CppUnitのようなQTestLibがあります。今回の記事では、QTestLib簡単なテスト実行プログラムを作成してみましょう。(この記事は、関連記事サイトのチュートリアルの一部です。Qtの初心者向けプログラマーをターゲットに記載されています。http://doc.trolltech.com/4.5.1/qtestlib-manual.htmlここで使用したサンプルソースコード:Qtサンプル14簡単なテストターゲットクラスを作る今回のために、簡単なテストターゲット用の独自のクラスを用意してみました。val){m_value[2]=val;}すごく単純なクラスです。テストを行いたいメソッドは、以下の2つのメソッドです。現在の値に指定のval値を足しこみます。現在の値に指定のval値を減らします。内部の値は、配列で持っています。テストプログラムを以下のようにしてみました。"sample.moc"簡単に解説しておきます。最初、最後に決まりごととして以下の件があります。5行目、テスト用クラスは、必ず、QObjectを継承します。50行目、テスト用クラスは、必ず、QTEST_MAINマクロを使用してmainプログラムを作成します。51行目、テスト用クラスは、必ず、自身のmocを最後にincludeします。QTEST_MAINに関しては、独自に作成することもできます。上記のやり方を踏襲した方が簡単なので、そのように記述しています。slotsで定義します。名前は、何でも良いですが、わかりやすい名前が良いでしょう。15行目からは、plusメソッドのテストを行っています。18行目は、ベンチマークテストの設定例です。QBENCHMARK()マクロで指定した範囲の処理能力テストを行うことができます。デフォルトのテスト動作は、処理時間です。出力させることもできます。22行目は、比較しています。QCOMPAREマクロでは、第一引数と第二引数が一致していればテストOKとなります。引数と第二引数には、比較演算子(==)が使えるものは、全て設定できます。const;のようなメソッドをオーバーロードすれば、QCOMPAREマクロで、CTestPlusのオブジェクト同士をチェックすることもできます。25行目は、テストメソッド(testMinus)のデータ設定メソッドです。テスト用メソッド名_data()は、テスト用メソッドのためのデータ設定メソッドとして予約名となります。データ設定は、以下の設定を行う必要があります。QTest::addColumn<T>テンプレートを使って、テスト用メソッドで使用するパラメータの型と名前を定義します。QTest::newRow(name)を使って、テスト用データのパターン名とパラメータを定義します。37行目からが、先に設定されたデストパラメータを取り出して、テストを実施するメソッドになります。QFETCHマクロで、順次、データ設定されているパラメータを型、名前を指定して取り出します。44行目から、取り出したパラメータを使ってテストを実行しているところです。先に設定されているテストパターン毎に、このメソッドがコールされますので、ここでテストパターンの数などを意識する必要はありません。独自で何か特別なことをやらない限りは、非常に簡単です。テストを行いましょうでは、早速、このテストプログラムをコンパイルして実行してみましょう。コンパイル時は、以下のようにコマンドパラメータでQTHELPを取り込むか、.proへ追記する必要があります。"QT+=testlib".proへ追記する場合は、以下の1行を追加します。testlibこのテストプログラムを実行すると、以下のような結果が表示されます。33行目のテストパターンについては、"FAIL(失敗)"となっています。*********すごく簡単なのですが、QTestLibの主な機能が、ここに、(GUIのテスト部分がありませんが)ほとんど記載されています。上記のパターンでテストをしてみました。(パラメータの詳細は、以降参照)テストプログラムには、自動的に以下のパラメータを指定できるようになります。[testfunctions[:testdata]]...[options]は、以降を参照のこと。[testfunctions[:testdata]]一部のテストメソッドのみ実行したい場合に指定します。下記の形式で指定します。※テストパターン名が入力されない場合は、指定されたメソッドの全てのパターンがテストされます。2000.また、ベンチマークテストでは、更に以下のようなパラメータを指定することができます。以下は、チュートリアルにある画面のテスト例です。チュートリアルにあるものを解説いたしません。*********上記では、keyClicksを使用していますが、他にも以下のものが使えます。*********一応、一通りのテストに関する事項を記載してみました。CppUnitよりは、簡単に記述できると思います。画面もある程度は、テストの自動化ができます。アルゴリズムのテストや、処理能力のテストなどには、非常に便利だろうと思います。画面のテストの自動化は、なかなか、難しいというのが、個人的な感想です。ご意見などありましたら、コメントいただけますようお願い致します。Qt関連について詳しく知りたい方は、以下の本なども良いと思います。Qtに関する日本語の本が少ないですね。「入門書」は、さすがに、このページを読まれるくらいの方は不要だと思います。本+ネット+試してみる!!の3本柱でやっていく以外にないように思います。この記事を読んだ人は、こんな記事も読んでいます。使えそうな無料/有料レンタルサーバーで、いろいろなレンタルサーバを確認できます。/言語BOOSTC/C++htmlphpQtwin32++WTL書庫このサイトは?ウェブやソフトウェアに関するサポート&情報サイトです。サイト構築からソフトウェアの作成、利用まであなたの助けになるかも・・・・しれません。