2013-02-26 153 views
4

我想單元測試一些使用HttpListenerContext的代碼。我找不到可以模擬的基類或接口。是否有像HttpListenerContext HttpRequestBase?嘲笑HttpListenerContext

回答

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編寫所有方法並注入一個模擬的方法。

這一點努力,但讓你的東西測試。