当我尝试测试我的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
?
由于
答案 0 :(得分:33)
Assert.That(controller.TempData.ContainsKey("info"));
正是您所需要的。