Moq'ing HttpContext.Current - PullRequest
       47

Moq'ing HttpContext.Current

0 голосов
/ 07 сентября 2011

У меня есть библиотека классов, в которой есть метод, который отправляет электронные письма на основе шаблона. Я получаю доступ к шаблону через следующее:

HttpContext.Current.Server.MapPath("email template path");

Теперь, когда дело доходит до написания моих модульных тестов, я хочу иметь возможность смоделировать «Текущий контекст», я пытался использовать MVCMockHelpers, но свойство «Текущий» всегда возвращает нуль.

Можно ли издеваться над этим свойством? Если да, то как мне это сделать?

1 Ответ

3 голосов
/ 07 сентября 2011

Я бы подумал, лучше ли вам полностью удалить зависимость от HttpContext и передать только путь в метод в виде строкового параметра.

Если вы также берете зависимость от HttpContext в другом местев той же библиотеке вам нужно взять зависимость от HttpContextBase, а не напрямую вызывать HttpContext.Вы должны передать это на сайте вызова или в качестве параметра, введенного конструктором.

Создание макета HttpContext было хорошо освещено многими другими, включая здесь Крейга Стунца.Это, по крайней мере, поможет вам начать, но, вероятно, потребует изменений для ваших конкретных требований к тестированию.

...