【发布时间】:2013-02-26 14:06:17
【问题描述】:
我正在尝试对一些使用 HttpListenerContext 的代码进行单元测试。我找不到可以模拟的基类或接口。 HttpListenerContext 有 HttpRequestBase 之类的吗?
【问题讨论】:
标签: c#
我正在尝试对一些使用 HttpListenerContext 的代码进行单元测试。我找不到可以模拟的基类或接口。 HttpListenerContext 有 HttpRequestBase 之类的吗?
【问题讨论】:
标签: c#
解决问题的方法是用虚方法创建一个抽象类。
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 编写所有方法并注入一个模拟的方法。
有点努力,但可以让你得到一些可测试的东西。
【讨论】: