4

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

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

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

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

4

1 回答 1

0

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

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

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

于 2012-05-10T23:27:30.147 回答