2012-01-16 25 views
2

Qtとユニットテストの初心者です。私はドキュメントと単体テストの例を見てきましたが、アプリケーションでテストシナリオをどのように使用するかを理解できませんでした。Qtユニットテスト

たとえば、ドキュメントでは、QLineEditが作成され、値が特定の値でチェックされます。

void testGUI() 
{ 
    QLineEdit lineEdit; 
    QTest::keyClicks(&lineEdit, "Hello"); 
    QCOMPARE(lineEdit.text(),QString("Hello")); 
} 

私がプログラムを実行すると、すべての結果がコンソールに表示されます。

しかしQMainWindowフォームにQLineEditとQPushButtonがあるかどうかを確認するにはどうすればいいですか?

GUIテストの方法は?

+0

見たことがありますかhttp://www.froglogic.com/squish/gui-testing/ – Atifm

答えて

2

あなたはGUIユニットテストを検討しているようです。

ここに行く:How can I unit test a GUI?

+0

私は「謙虚なダイアログボックス」のドキュメントを見てきました。私はFoundation Of Qtの本と、Harald Fernengelのチュートリアルで提供されているドキュメントも見てきました。しかし、私はウィジェットやGUIアプリケーションでqtフレームワークでユニットテーゼを使う方法について混乱しています。私はQLineEditを持っていると仮定し、実行時に単語数が3から15の間であるかどうかをチェックしたいと思います。複数のテストデータをチェックするには? – SAM

0

ユニットテストを通常のユーザインタフェースが含まれていません。ユニットテストは、各ユニット(クラス/コンポーネント)の低レベルテストでなければなりません。そして、統合テストは、何かを達成するために一緒に働いているユニットをテストします。モックオブジェクトは、他のコンポーネントのスタンドインとして機能するためにここで採用されることがありますので、動作が期待どおりであることを確認してください。

ユニットテストと統合テストが処理された後、UIテストは非常に厳しいものになるはずです。 Qtプロジェクトの場合、squishと呼ばれるfroglogicのクロスプラットフォームguiテストフレームワークが最善の策かもしれません。しかし、それは有料の製品であり、クロスプラットフォームの性質を必要としない場合、いくつかの無料のツールを手に入れることができます。ほとんどの場合、何らかのインストゥルメンテーションの下でアプリケーションを実行してから、ユーザーインターフェイスとのやり取りを再現し、テキストフィールドなどの値を確認します。

とにかく、XCodeとVisual Studioは基本的なUIユニットテストツール。彼らはまた、ウィキペディアの記事hereです。