Quando provo a testare i miei controller MVC 2, sto riscontrando dei problemi nel provare il risultato di TempData
quando eseguo un reindirizzamento. Funziona bene se il risultato dell'azione del controller è un ViewResult
, tuttavia, in un reindirizzamento, è RedirectToRouteResult
.Come si esegue il test per l'impostazione di TempData in MVC 2 in cui è presente un reindirizzamento?
Quindi la mia prova è qualcosa di simile:
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".
Una possibilità è quella di effettuare le seguenti operazioni:
Assert.That(controller.TempData.ContainsKey("info"));
Se il risultato fosse stato un ViewResult
avrebbe potuto essere testato in questo modo:
var viewResult = (ViewResult)actionResult;
Assert.That(viewResult.TempData.ContainsKey("info"));
C'è un modo per testare RedirectToRouteResult
allo stesso modo del ViewResult
può essere testato?
Grazie
Speravo in un modo per vedere l'effetto risultante (come 'ViewResult') invece della proprietà set. Se non c'è un modo, suppongo che non ci sia un modo. – Nathan
controller.TempData ["informazioni"]. –