Я использую MvcContrib и TestControllerBuilder для написания тестов для моего контроллера.
Я пишу тесты для моего контроллера обработки ошибок, которые выглядят так:
public JsonResult HttpError()
{
Exception ex = null;
try
{
ex = (Exception)HttpContext.Application[Request.UserHostAddress.ToString()];
}
catch
{
}
if( ex != null )
{
return Json( new ErrorViewModel() { Message = ex.Message, Source = ex.Source, StackTrace = ex.StackTrace, Type = ex.GetType().Name}, JsonRequestBehavior.AllowGet );
}
else
{
return Json( new ErrorViewModel() { Message = "An error has occured." }, JsonRequestBehavior.AllowGet );
}
}
По сути, моя глобальная обработка ошибок помещает последнее исключение в хранилище приложений, и этот контроллер пытается извлечь его, преобразовать в Json и вернуть его (мы возвращаем все как Json, потому что эти методы вызывают только как Веб-сервисы).
Чтобы полностью проверить это, мне нужно, чтобы UserHostAddress содержал что-то предсказуемое, но объекты, установленные TestControllerBuilder, оставляют это свойство пустым.
Как я могу заставить эту работу? Я не уверен, как я могу сделать это в моем тесте.