6

HttpListenerContext を使用するコードを単体テストしようとしています。モックできる基本クラスまたはインターフェイスが見つかりません。HttpListenerContext の HttpRequestBase のようなものはありますか?

4

1 に答える 1

3

この問題を解決する方法は、仮想メソッドを持つ抽象クラスを作成することです。

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 に対してすべてのメソッドを記述し、モック化されたメソッドに挿入します。

少し手間がかかりますが、テスト可能なものに到達します。

于 2013-02-26T14:50:53.353 に答える