4

これは私を夢中にさせています。エラーが発生した場合にリクエストのコンテンツレスポンスを変更するために使用する拡張機能があります。基本的に、すべてが機能する場合は通常どおりJSONにシリアル化されますが、未処理の例外が発生した場合は、別のオブジェクトに基づいてシリアル化されます。

これを回避するための単体テストが必要ですが、その書き方がわかりません。それが機能したことを検証する手段は、StatusCode、障害メッセージインスタンス、および応答のContentTypeを中心に展開されます。

戻る応答を変更するために、WebOperationContext静的クラスを利用します。これをモックする例を見たことがありますが、実際のコードに浸透し始める特別なロジックをハードコーディングする必要があるようですが、これは望ましくありません。

WCFの動作拡張を単体テストするための最良の方法は何ですか?

4

1 に答える 1

0

私も同様の状況にあり、WCFを(少なくともMoqを使用して)モックすることができませんでした。これは主に、ほとんどのクラスが封印されているか、内部コンストラクターを持っているためです。

私がしたことは、動作にIParameterInspectorandとan IClientMessageInspector(私の場合は両方が必要)を適用し、インスペクターのタイプに応じて、すべてのロジックをAfterCallまたはBeforeCall、または必要な方に配置することでした。

そうすれば、気にかけているすべてのロジックをテストできます。実際のWCFの動作はテストされていませんが、実際に行われたのは2人のインスペクターを追加することだけでした。

于 2012-05-10T23:27:30.147 に答える