2012-05-03 95 views
4

这让我疯狂。我有一个扩展,如果出现错误,我们会使用它来更改请求的内容响应。基本上,如果一切正常,它会像平常一样序列化为JSON,但是如果我们得到未处理的异常,我们会根据不同的对象进行序列化。单元测试WCF行为扩展

我们需要单位测试,但我不知道如何编写它们。验证它的工作方式是围绕StatusCode,错误消息实例和响应的ContentType进行的。

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

单元测试WCF行为扩展的一些最佳方法是什么?

回答

0

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

我所做的是让我的行为只是套用IParameterInspectorIClientMessageInspector(在我的情况,我需要两个),把我所有的逻辑无论是在AfterCallBeforeCall,或者哪一个你所需要的,这取决于检查类型。

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