2011-07-05 6 views
2

私はJUnitを初めて使い、すべてのメソッドの単体テストを書く必要があるサンプルJavaプロジェクトがあります。 残念なことに、コードはあまり設計されておらず、メソッドのいくつかはUIから実行されます。さらに、いくつかのメソッドはメッセージボックスをポップアップし、戻り値を返しません。Junitとメッセージボックス

私は2つの質問があります:まず、既存のコードを変更せずに、私はメッセージボックスを抑制することができますか?

2番目の質問:テスト機能はメッセージボックスを期待し、文字列の内容に失敗して成功することはできますか?

私は、コード自体を修正することが最善の解決策であることを認識しています.BusinessLogicをUIから完全に分離し、予期した結果をテストすること、あるいはメッセージボックスが何らかの形で必須のモーダルメッセージボックス残念ながら私はコード内の何かを変更することはできません。

感謝:)

Nili

+1

テストする予定があるが修正できないコードが悪い場合は、ジョブの変更を探してください。あなたは馬鹿のために働いています。 –

+0

Swing UIについて話していますか? Webアプリケーション/ JSP?実際には広範な答えには影響しませんが、詳細は異なる場合があります。 –

+0

@Joachim、Swing UI。 @Don、あなたは絶対に正しいです:) – Nili

答えて

0

コードを変更することはできません。最初に、JMockitを見て、実際にテストする必要があるかどうか心配して書かれていないコードによって厳しく制限されているときに、多くの可能性を開くことを考えました。テストを実行している間は、コードを変更することなく、煩わしい部分の優先実装を置き換えることができるはずです。テストの目的だけでは、テスト対象を変更したでしょうか(有意義なテストを書くように注意してください)その依存関係。他のモックオブジェクトフレームワークも便利ですが、JMockitを学ぶための投資は本当に時間を費やしています。

0
unfortunately I am not allowed to change anything in the code. 

のJUnitとSwingのテストを自動化する方法についてのGoogleでのもののすべての種類があります。残念ながら、テストするときにこの問題を回避する方法はありません。

2

コードの編集が許可されていれば、私が最初にやってみる方法はありますか?この制限を緩和できるかどうかを確認し、Working Effectively With Legacy Codeを読んでください。

FEST-SwingのようなGUIテストフレームワークを使用して、メッセージボックスの内容が期待どおりになっているかどうか試してみることができない場合があります。