单元测试WCF行为扩展

时间:2012-05-03 13:12:57

标签: c# json wcf unit-testing wcf-behaviour

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

我们需要围绕此进行单元测试,但我无法弄清楚如何编写它们。验证它是否有效的方法围绕StatusCode,错误消息实例和响应的ContentType。

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

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

1 个答案:

答案 0 :(得分:0)

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

我所做的是让我的行为只应用IParameterInspectorIClientMessageInspector(在我的情况下我需要两者)并将我的所有逻辑放在AfterCall或{{ 1}},或者您需要的任何一种,具体取决于检查员类型。

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