这让我发疯。我有一个扩展,如果出现错误,我们可以使用它来更改请求的内容响应。基本上,如果一切正常,它会像往常一样序列化为 JSON,但如果我们遇到未处理的异常,我们会基于不同的对象进行序列化。
我们需要对此进行单元测试,但我不知道如何编写它们。验证它是否有效的方法围绕 StatusCode、故障消息实例和响应的 ContentType。
为了修改返回的响应,我使用了 WebOperationContext 静态类。我已经看到了对此进行模拟的示例,但似乎我必须对特殊逻辑进行硬编码,然后才能开始渗透到实际代码中,这是我不想要的。
对 WCF 行为扩展进行单元测试的最佳方法有哪些?
最佳答案
我有过类似的情况,无法模拟 WCF(至少使用 Moq),主要是因为大多数类要么是密封的,要么有内部构造函数。
我所做的是让我的行为只应用一个 IParameterInspector
和一个 IClientMessageInspector
(在我的例子中我需要两者)并将我所有的逻辑放在 AfterCall
或 BeforeCall
,或您需要的任何一种,具体取决于检查员类型。
这样我就可以测试我关心的所有逻辑。 实际的 WCF 行为尚未经过测试,但它真正所做的只是添加了两个检查器,没有其他任何内容。
关于c# - 对 WCF 行为扩展进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10432147/