2011-12-16 18 views
1

このクラスは単なる要求ディスパッチャーです。それは要求と応答オブジェクトを受け取り、要求タイプに従って作業を渡します。アプリケーションロジックがテストされます。嘲笑は避けなければならない。テストを統合テストまたはシステムテストにすることなく、このディスパッチャの単体テストを作成するにはどうすればよいですか?ディスパッチャは通常どのようにテストされますか?ユニットテストWebサービスリクエストディスパッチャ(Java)に必要ですか?


編集:私は嘲笑を避けるように言われました。私はその決定を変えることはできないと思う。

+0

騒々しいことなく聞こえません。なぜあなたはそれを統合テストに変えたくないのですか?すでに2つの異なるオブジェクト(要求と応答)に依存しています。 –

+0

嘲笑を避けるように言った人は誰でも、嘲笑せずにテストしても統合テストになるだろうということを伝える必要があります。私が推測する人は残りの目標を指示し、彼の目標のどれを選択する必要があります(黙っていない、統合テストの代わりにユニットテストはありません)。 –

+0

これは、あなたの上司がこのクラスをテストするために働かなければならない制約をかなり理解していないような、政治的な問題のほうがはるかに聞こえます。 – djhaskin987

答えて

0

コードには2つの部分があります。最初はWebレイヤーとディスパッチの間のデータのマーシャリング、2番目はハンドラーへのディスパッチです。

ディスパッチは、「プレーン」ユニットテストを使用してテストすることができます。これは、任意の条件をハンドラにマップするロジックです。

マーシャリングレイヤでは、Web要求を作成し、そのルーティングを監視するために十分な統合、ハンドラから返されるものなどが必要です。HtmlUnitは1つの解決策です。

0

モックを使用します。ユニットテストを行います。

テストする部分とテストしない部分の選択と選択を開始すると、何もテストしないこともあります。

また、「ブートストラップ」や「詐欺師」などの名前を付けて制限を回避することもできます。代わりに、嘲笑されたオブジェクトを手作業でコーディングして、そのような制限を回避することができます。