模拟HttpListenerContext

时间:2013-02-26 14:06:17

标签: c#

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

1 个答案:

答案 0 :(得分:2)

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

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

有点努力,但让你有可测试的东西。