【问题标题】:Unit testing with a mock HttpListener使用模拟 HttpListener 进行单元测试
【发布时间】:2014-10-08 11:21:34
【问题描述】:

我应该说我在 C# 的模拟框架世界中相当新。我正在构建一个小型服务,它使用System.Net.HttpListener 侦听传入的 HTTP 请求,并希望通过注入该类的模拟实例来对我的实现进行单元测试。所以我尝试使用Moq,但这当然要求模拟目标是一个接口,以便它可以提供一个存根实现。然后我尝试使用 Microsoft Fakes,但它不会让我生成 StubHttpListener。那么有没有其他方法可以模拟System.Net.HttpListener的行为呢?

【问题讨论】:

    标签: c# httplistener


    【解决方案1】:

    编写一个包装 HttpListener 的类并从中提取一个接口,然后您可以模拟/存根您的包装器

    【讨论】:

      【解决方案2】:
      1. 创建自定义接口包含由 HttpListener 的服务方法使用
      2. 创建自己的从 HttpListener 派生的类,并使用 HttpListener 方法调用从 p.1 实现接口
      3. 从服务类中的 p.1 拉取接口(使用 IoC 或其他机制)并将依赖注入映射到 p.2 中的自定义类
      4. 从 p.1 模拟自定义界面以对服务进行单元测试

      【讨论】:

      • HttpListener 和相关类(HttpListenerContextHttpListenerRequestHttpListenerResponse)是密封的。
      猜你喜欢
      • 2012-02-16
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-04
      • 2013-11-12
      • 2018-11-21
      相关资源
      最近更新 更多