模拟 WebOperationContext

发布于 2024-12-23 05:40:55 字数 361 浏览 4 评论 0原文

我正在使用 WCFMock 来模拟 Web 服务中的 WebOperationContext。唯一的用法是将自定义 HTTP 标头添加到 WebOperationContext.Current.OutgoingResponse.Headers 集合中。我无法使用起订量验证这一点。我已经尝试过:

  • 验证是否调用了 Add 方法。这会失败,因为 Add 不是虚拟的
  • 尝试直接从 MockedWebOperationContext.Current 访问标头。数量始终为零

如何在我的单元测试用例中验证是否已添加自定义标头?

I'm using the WCFMock to mock the WebOperationContext in my web service. The only usage is to add a custom HTTP header to the WebOperationContext.Current.OutgoingResponse.Headers collection. I'm unable to verify this using Moq. What I've already tried:

  • Verify if the Add method is getting invoked. This fails because Add is not virtual
  • Try to access the header directly from MockedWebOperationContext.Current. This is always zero in number

How can I verify in my unit test case that a custom header has been added?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

揽月 2024-12-30 05:40:55

想通了。这是后代的解决方案。

当我们为 IWebOperationContext 创建“最小起订量模拟”时,该示例建议我们设置属性 DefaultValue = DefaultValue.Mock。这将模拟所有依赖项,包括 HttpHeaders 集合。我跳过了这一点并模拟了 OutgoingWebResponseContext 以返回 WebHeaderCollection。对于我的测试用例,我只是对这个集合进行断言。

Figured it out. Here's the solution for posterity.

When we create the "moq mock" for the IWebOperationContext, the example suggests that we set the property DefaultValue = DefaultValue.Mock. This will mock all dependincies including the HttpHeaders collection. I skipped this and mocked the OutgoingWebResponseContext to return a WebHeaderCollection. For my test case I simply assert on this collection.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文