使用模拟HttpListener进行单元测试

时间:2014-10-08 11:21:35

标签: c# httplistener

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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