【问题标题】:Mocking HttpListenerContext模拟 HttpListenerContext
【发布时间】:2013-02-26 14:06:17
【问题描述】:

我正在尝试对一些使用 HttpListenerContext 的代码进行单元测试。我找不到可以模拟的基类或接口。 HttpListenerContext 有 HttpRequestBase 之类的吗?

【问题讨论】:

    标签: c#


    【解决方案1】:

    解决问题的方法是用虚方法创建一个抽象类。

    public abstract class HttpListenerContextBase
    {
        public virtual HttpListenerRequestBase Request { get; private set; }
        public virtual HttpListenerResponseBase Response { get; private set; }
        public virtual IPrincipal User { get; private set; }
    }
    

    然后,您可以为在构造函数中接受 HTTPListnerContext 并从 HttpListenerContextBase 继承的真实封装类创建自己的封装类。它只是从真实上下文中返回方法。

    然后在您的代码中针对 HttpListenerContextBase 编写所有方法并注入一个模拟的方法。

    有点努力,但可以让你得到一些可测试的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-19
      • 2015-01-08
      • 1970-01-01
      • 2019-08-18
      • 2017-01-20
      • 2011-02-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多