4
我想單元測試一些使用HttpListenerContext的代碼。我找不到可以模擬的基類或接口。是否有像HttpListenerContext HttpRequestBase?嘲笑HttpListenerContext
我想單元測試一些使用HttpListenerContext的代碼。我找不到可以模擬的基類或接口。是否有像HttpListenerContext HttpRequestBase?嘲笑HttpListenerContext
解決問題的方法是用虛擬方法創建一個抽象類。
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編寫所有方法並注入一個模擬的方法。
這一點努力,但讓你的東西測試。