Тестирование пользовательского ActionResult - PullRequest
3 голосов
/ 15 декабря 2010

Я написал собственный ActionResult, который возвращает строку. Я пытаюсь выяснить, как я могу это проверить.

Я пробовал со следующим:

  string ExecuteResult(ActionResult result)
  {
        var ctx = new ControllerContext();
        var writer = new StringWriter();
        var response = new HttpResponse(writer);
        var context = new HttpContext(new HttpRequest(null, "http://localhost/uri/", null), response);
        System.Web.HttpContext.Current = context;


        result.ExecuteResult(ctx);
        return writer.ToString();
  }

Это дает мне:

Test method Tests.Web.Mvc.ApplicationControllerTest.TestMessageBox threw exception: 
System.NotImplementedException: The method or operation is not implemented.

Трассировка стека:

System.Web.HttpContextBase.get_Response()
System.Web.Mvc.JavaScriptResult.ExecuteResult(ControllerContext context)
Tests.Web.Mvc.ResultExecutor.InvokeActionResult(ActionResult result) in D:\utv\Framework 4.0\Main\src\Framework.Tests\Web\Mvc\ResultExecutor.cs: line 22
Tests.Web.Mvc.ApplicationControllerTest.TestMessageBox() in D:\utv\Framework 4.0\Main\src\Framework.Tests\Web\Mvc\ApplicationControllerTest.cs: line 46

Как проверить результаты действий?

Ответы [ 2 ]

0 голосов
/ 18 января 2011

Думаю, это невозможно для MVC2 или MVC3.

0 голосов
/ 15 декабря 2010

Может быть, это может вам помочь:

Интеграционное тестирование приложения ASP.NET MVC без веб-сервера или браузера

Это для v1 MVC, я непробовал еще с v2, и я также не знаю, есть ли обновление для инфраструктуры интеграционного тестирования, но, возможно, это может быть полезно для вас.

Томас

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