6

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

4

1 回答 1

3

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

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 编写所有方法并注入一个模拟的方法。

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

于 2013-02-26T14:50:53.353 回答