unit testingWCF行为扩展

这真让我抓狂。 我有一个扩展,我们用它来改变请求的内容响应,如果有错误。 基本上,如果一切正常,它会像往常一样被序列化为JSON,但如果我们得到一个未处理的exception,我们会根据不同的对象进行序列化。

我们需要对此进行unit testing,但我无法弄清楚如何编写它们。 validation它是否有效的方法围绕StatusCode,错误消息实例和响应的ContentType。

要修改回复的响应,我使用WebOperationContext静态类。 我已经看到了模拟这个的例子,但似乎我必须硬编码特殊的逻辑,然后开始渗透到我不想要的实际代码中。

有哪些unit testingWCF行为扩展的最佳方法是什么?

我有类似的情况,并且无法模拟WCF(至少使用Moq),主要是因为大多数类都是密封的或具有内部构造函数。

我所做的是让我的行为只是应用一个IParameterInspector和一个IClientMessageInspector (在我的情况下我需要两者)并将我的所有逻辑放在AfterCallBeforeCall ,或者根据检查器类型放在你需要的任何一个中。

这样我就可以测试我所关心的所有逻辑。 实际的WCF行为仍然未经测试,但它真正做的只是添加两个检查员而不是其他任何东西。