我正在尝试对一些使用 HttpListenerContext 的代码进行单元测试。我找不到可以模拟的基类或接口(interface)。 HttpListenerContext 是否有类似 HttpRequestBase 的东西?
最佳答案
解决问题的方法是创建一个带有虚方法的抽象类。
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 编写所有方法并注入(inject)模拟方法。
一点点努力,但能让你得到一些可测试的东西。
关于c# - 模拟 HttpListenerContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15091134/