Как проверить, установлены ли TempData в MVC 2, где есть перенаправление? - PullRequest
12 голосов
/ 29 октября 2010

Когда я пытаюсь протестировать мои контроллеры MVC 2, мне трудно проверить результат TempData, когда я делаю перенаправление. Это работает нормально, если результатом действия контроллера является ViewResult, однако при перенаправлении оно RedirectToRouteResult.

Итак, мой тест выглядит примерно так:

var controller = new SubscriptionController(this.dataStorageMock.Object)
    {
        ControllerContext = MvcMockHelpers.GetControllerContextMock("POST")
    };

var actionResult = controller.Create(formCollection);
var redirectResult = (RedirectToRouteResult)actionResult;

// TODO: Need to ensure TempData contains a key "info".

Один из вариантов - сделать следующее:

Assert.That(controller.TempData.ContainsKey("info"));

Если бы результат был ViewResult, его можно было бы проверить следующим образом:

var viewResult = (ViewResult)actionResult;
Assert.That(viewResult.TempData.ContainsKey("info"));

Есть ли способ проверить RedirectToRouteResult так же, как можно проверить ViewResult?

Спасибо

1 Ответ

33 голосов
/ 30 октября 2010

Assert.That(controller.TempData.ContainsKey("info")); именно то, что вам нужно.

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