单元测试 WCF 行为扩展

本文关键字:扩展 WCF 单元测试 | 更新日期: 2023-09-27 18:33:07

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

我们需要围绕这一点进行单元测试,但我无法弄清楚如何编写它们。验证它是否有效的方法围绕响应的状态代码、错误消息实例和内容类型。

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

对 WCF 行为扩展进行单元测试的最佳方法有哪些?

单元测试 WCF 行为扩展

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

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

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