c# - 对 WCF 行为扩展进行单元测试

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

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

我们需要对此进行单元测试,但我不知道如何编写它们。验证它是否有效的方法围绕 StatusCode、故障消息实例和响应的 ContentType。

为了修改返回的响应,我使用了 WebOperationContext 静态类。我已经看到了对此进行模拟的示例,但似乎我必须对特殊逻辑进行硬编码,然后才能开始渗透到实际代码中,这是我不想要的。

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

最佳答案

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

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

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

关于c# - 对 WCF 行为扩展进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10432147/

相关文章:

c# - 在负载均衡器和 SSL 后面配置 WCF

wcf - 在 WPF 应用程序中托管 WCF Rest 服务

c# - 查找引用最多的方法

c# - 管理描述性 URL

c# - 具有无限数量的键但数量有限的对象的对象缓存

java - 打印数组时如何去掉groovy中的括号和逗号

c# - 使用 System.Text.Json 反序列化 Json 时间戳

c# - 创建短网址服务时,302 临时重定向是最好的方法吗?

javascript - 遍历 JSON 数组 - 正确格式化

wcf - 以编程方式使用 HTTPS 配置 ServiceHost 端点?