Mocking HttpListenerContext
本文关键字:HttpListenerContext Mocking | 更新日期: 2023-09-27 18:01:06
我正在尝试对一些使用HttpListenerContext的代码进行单元测试。我找不到可以模拟的基类或接口。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编写所有方法,并注入一个模拟方法。
付出一点努力,但会让你达到可测试的水平。