Podczas próby przetestowania kontrolerów MVC 2, trudno jest przetestować wynik TempData
podczas wykonywania przekierowania. Działa dobrze, jeśli wynikiem działania kontrolera jest ViewResult
, jednak w przekierowaniu jest to RedirectToRouteResult
.Jak wykonać test ustawienia TempData w MVC 2, gdzie występuje przekierowanie?
Więc mój test jest coś takiego:
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".
Jedną z opcji jest, aby wykonać następujące czynności:
Assert.That(controller.TempData.ContainsKey("info"));
Jeśli wynik był ViewResult
mogło zostały przetestowane tak:
var viewResult = (ViewResult)actionResult;
Assert.That(viewResult.TempData.ContainsKey("info"));
Czy istnieje sposób na przetestowanie RedirectToRouteResult
w taki sam sposób, jak ViewResult
może być testowany?
Dzięki
Miałem nadzieję na sposób, aby zobaczyć wynikowy efekt (np. "ViewResult") zamiast właściwości set. Jeśli nie ma sposobu, to chyba nie ma sposobu. – Nathan
controller.TempData ["informacje"]. –