модульное тестирование функции, вызывающей RenderPartialViewToString в MVC 3 - PullRequest
0 голосов
/ 24 марта 2012

Я хочу провести модульное тестирование действия контроллера, которое использует RenderPartialViewToString для визуализации Json.Я использую NSubstitute в качестве основы для тестирования.проблема здесь в том, что использование ControllerContext не доступно в тестовой среде.

protected string RenderPartialViewToString(string viewName, object model) {
            if (string.IsNullOrEmpty(viewName))
                viewName = ControllerContext.RouteData.GetRequiredString("action");

            ViewData.Model = model;
            ViewBag.RepositoryFactory = this.RepositoryFactory;

            using (StringWriter sw = new StringWriter()) {
                ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName);
                ViewContext viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);
                viewResult.View.Render(viewContext, sw);

                return sw.GetStringBuilder().ToString();
            }

        }

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 24 марта 2012

Вы можете создать класс-оболочку, который будет возвращать необходимые данные при внутреннем использовании ControllerContext, и заменить его инфраструктурой тестирования.

Кроме того, для такого рода вещей существуют платформы тестирования, которые позволяют заменять статику, например * 1003.* Родинки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...