2012-03-11 8 views
1

私はjunitを使い始めるので、テスト駆動型開発がますます増えています。これはjunitでユーザーインターフェイスをテストするための妥当なアプローチですか?

しかし、私はユーザーインターフェースをテストしようとすると問題にぶつかります - 私の最初の本能は、テストをして人間の仕事を模倣するようにマウスを閉じ込めるオブジェクトを作るためのjunitですが、穏やかであり、変更するのが非常に弾力的ではありません。私はこのすべてに間違っているのだろうか?この場合のベストプラクティスは何ですか?

私が探しています特定のケースは、SWTベースのですが、任意の一般的な概要は素晴らしい:)

+0

あなたはhttp://stackoverflow.com/questions/215458/how-can-i-unit-test-a-guiをチェックしました – Jayan

答えて

1

それはあなたがテストしているユーザ・インタフェースの種類によって異なりますが、ウェブテストのために、Seleniumを見てだろうブラウザを自動化し、サイトなどをナビゲートすることができます。

スイングテストでは、スイングアプリケーションでも同じように動作するFESTを参照してください。

インターフェイスの実際のテストでは、私は時々Apache HttpClientを使用して直接Webページを呼び出し、結果を直接調べます(たとえば、ページにエラーがないことを確認してください)。これは、設定するのが簡単で、テストとして壊れにくいことがよくあります。

+0

遅刻応答の謝罪 - セレンはかなり良いです:) – Joe

2

私は約uispec4jを提案しようとしていました。明らかに、それはSWTをサポートしていません。

ほとんどすべての 'ロボット'ベースのテストは脆弱です。GUIが変更された場合、テストを修正するのにかなりの時間を費やすことになります。フレームワークを書く場合は、jemmyから始めることができます。これは良いモデル駆動のGUIテスト機能を持っています。しかし、Jemmyはjunitテストで直接使用することはできません。

テスト用のUIをリファクタリングすると、デザインが良好になります。あなたがそのようなアイデアに触れているならば、Model View Presenter pattern

1

私が本当に見ているのは、特定のケース(一般的ではないので、私が他の答えを受け入れた理由です)になります。 forはhttp://www.eclipse.org/swtbot/

関連する問題