Sto provando a testare alcune logiche dell'applicazione che dipendono dalla proprietà Values in ControllerContext.RouteData.Mocking La classe RouteData in System.Web.Routing per applicazioni MVC
Finora ho
// Arrange
var httpContextMock = new Mock<HttpContextBase>(MockBehavior.Loose);
var controllerMock = new Mock<ControllerBase>(MockBehavior.Loose);
var routeDataMock = new Mock<RouteData>();
var wantedRouteValues = new Dictionary<string, string>();
wantedRouteValues.Add("key1", "value1");
var routeValues = new RouteValueDictionary(wantedRouteValues);
routeDataMock.SetupGet(r => r.Values).Returns(routeValues); <=== Fails here
var controllerContext = new ControllerContext(httpContextMock.Object, routeDataMock.Object, controllerMock.Object);
L'unità di test fallisce con: System.ArgumentException: l'installazione non valido su un membro non-override: r => r.Values
Creazione di un falso RouteData non funziona in quanto il costruttore è RouteData (RouteBase, IRouteHandler).
L'importante classe qui è la classe astratta RouteBase che ha il metodo GetRouteData (HttpContextBase) che restituisce un'istanza di RouteData, la classe che sto cercando di simulare. Portami in giro in cerchio!
Qualsiasi aiuto su questo sarebbe molto gradito.
Lol, grazie. Questo è stato un caso di ripensare al problema da parte mia. Molto semplice. Saluti. – Magpie