CXXTESTフレームワークとValgrindを使用してQTオブジェクトをテストします

StackOverflow https://stackoverflow.com/questions/4268809

質問

使用することは可能ですか? cxxunit qttestlib)QTウィジェットをテストするには?

はいの場合、さらに2つの質問があります。

  1. どのように?
  2. Valgrindを使用してユニットテストを実行しているため、これはいくつかのエラーをレポートできますか?
役に立ちましたか?

解決

はい、それは可能であるはずです。 CXXUnitについては特によくわかりませんが、理論的には可能です。

  1. QTオブジェクトを適切にテストするには、おそらくグローバルセットアップおよび隔離関数でQAPPlicationオブジェクトを作成/破壊する必要があります。 QApplication機能を具体的にテストしている場合を除き、テストアプリケーションの実行全体に対して1つだけを作成する必要があります。これにより、ウィジェットのロジックの一部をテストすることができますが、ウィジェットの外観やUIインタラクティブは簡単ではありません。また、特定のアイテムのテストは、アプリケーションのイベントループを実行することに依存する場合がありますが、これはより困難です。
  2. Valgrindはいくつかのエラーを報告する場合があります。また、QTのコード、特に適用の断片に任される静的割り当てでエラーを報告する場合があります。

他のヒント

UIをテストしたい場合は、次のようなUIテストツールを使用することをお勧めします ビシャビシャ押しつぶす. 。ユニットテストウィジェット自体ではなく、ウィジェットの背後にあるロジックをテストするのに適しています。あなたが本当にあなたのQTウィジェットをユニットテストしたいなら、私はQTTESTLIBよりも良い解決策があるとは思わない。

Valgrind:aがあります Squish用のValgrindプラグイン. 。私はそれを自分で使用していません。もちろん、他のユニットテストはValgrindで簡単に実行できますが、これを完全に自動化するソリューションはわかりません。 EG X11 LIBSのいくつかのエラーがユニットテストが失敗するようにトリガーされないように、外部からのすべての警告を実際に抑制する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top