2013-02-26 3 views
4

Я пытаюсь выполнить тестирование кода, использующего HttpListenerContext. Я не могу найти базовый класс или интерфейс, который я могу высмеять. Есть что-то вроде HttpRequestBase для HttpListenerContext?Mocking 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 и вводите в насмешку.

Немного усилий, но вы можете что-то проверить.