Я пытаюсь проверить некоторую логику приложения, которая зависит от свойства Values в ControllerContext.RouteData.
Пока у меня есть
// 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);
Сбой модульного теста:
System.ArgumentException: Invalid установка на не переопределение члена:
г => r.Values
Создание фиктивных RouteData также не работает, так как конструктором является RouteData (RouteBase, IRouteHandler).
Важным классом здесь является абстрактный класс RouteBase, который имеет метод GetRouteData (HttpContextBase), который возвращает экземпляр RouteData, класса, который я пытаюсь подделать. Возьми меня по кругу!
Любая помощь по этому вопросу будет приветствоваться.